小编Bur*_*ndy的帖子

将0x0EB8之类的东西从字符串转换为int32类型?

我需要以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)

有人知道这样做的好方法吗?

c# int32

1
推荐指数
1
解决办法
63
查看次数

当通过TCP连接发送时,"R"不会重新设置为等于"R"

我试图让客户端向我的服务发送命令,该命令为"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以某种方式改变字符串吗?

c# string tcp tcplistener tcpclient

-1
推荐指数
1
解决办法
92
查看次数

标签 统计

c# ×2

int32 ×1

string ×1

tcp ×1

tcpclient ×1

tcplistener ×1