我需要以int32的形式从用户那里获取供应商ID,它们通常看起来像这样.0x0EB8我可以把它写成代码
int32 vid = 0x0EB8;
Run Code Online (Sandbox Code Playgroud)
这很好用.但我需要以字符串的形式从用户那里获取它.当我调用System.Convert.ToInt32("0x0EB8")时,我得到一个类型转换异常.
这是我的一些测试代码,它给了我一个例外.
Int32 blah;
Console.WriteLine("Please enter the Vendor ID");
string blahString = Console.ReadLine();
blah = Convert.ToInt32(blahString);
Run Code Online (Sandbox Code Playgroud)
有人知道这样做的好方法吗?
我试图让客户端向我的服务发送命令,该命令为"R".但是当我尝试制作一个IF语句时,它不会将通过TCP输入的"R"注册为等于我在程序中创建的字符串R. 这是我的一些代码.
byte[] message = new byte[1024];
byte[] command = Encoding.ASCII.GetBytes("R");
stream.Read(message, 0, message.Length);
string messageIn = Encoding.ASCII.GetString(message);
//updateUI("New Message = " + messageIn);
string commandString = Encoding.ASCII.GetString(command);
if (Encoding.ASCII.GetString(message) == Encoding.ASCII.GetString(command))
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我的印象是将"R"转换为字节然后超出字节会导致这个问题因此成为巨大的if语句.但是,由于我的if块从不运行,因此这些条件中没有一个返回true.
我知道它正在返回"R",因为当我将它输出到文本框时,这就是打印的内容.转移它的行为是通过tcp以某种方式改变字符串吗?