带有加号或次数的文本框到无符号整数

时间:2013-11-19 14:12:26

标签: c# converter uint32

我目前的代码:

UInt32 example = Convert.ToUInt32(tb_address.Text, 16);

问题是我是否正在偷看这样的地址:

  

0x83e3ba3c + 0x15

toUint32显然会返回错误并拒绝。

无论如何,我可以在其中处理操作员吗?

Picture of my app to maybe further understand it

2 个答案:

答案 0 :(得分:0)

使用'+'分割字符串。在修剪结果之后,解析它们并将它们添加到一起。

答案 1 :(得分:0)

可能你最好的选择是将代码隐藏在静态类中。这样的事情应该有效:

public static class HexAdder
{
    private static UInt32 num1 = 0, num2 = 0;
    private static void ParseString(string stringtoadd)
    {
        string[] temp = {"",""};
        try
        {
            temp = stringtoadd.Split(" +".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            num1 = Convert.ToUInt32(temp[0], 16);
            num2 = Convert.ToUInt32(temp[1], 16);
        }

        catch(Exception e)
        {

            MessageBox.Show("Invalid String Format\n- Added String = " + stringtoadd + "\n- First Part = " + temp[0] + "\n- Second Part = " + temp[1]);
        }
    }
    public static UInt32 AddedToUint32(string stringtoadd)
    {
        ParseString(stringtoadd);
        return num1 + num2;
    }
}

这有基本验证并弹出一个消息框,如果有错误则返回0.

使用它看起来像这样:

        string test = "0x83e3ba3c + 0x15";
        UInt32 example = HexAdder.AddedToUint32(test);

这样添加其他操作只需添加适当的静态方法即可。