C# 如何修复c中的“无法隐式地将类型'char'转换为'string'”错误?

C# 如何修复c中的“无法隐式地将类型'char'转换为'string'”错误?,c#,visual-studio,arduino,serial-port,C#,Visual Studio,Arduino,Serial Port,我正在将数据从Arduino发送到控制台。接收到数据触发事件后。但我现在面临这个错误,无法将类型“char”隐式转换为“string” 将单引号更改为双引号。单引号用于字符,双引号用于字符串 无法将类型“char”隐式转换为“string” 您可能需要查看铸造和类型约定。看见您可能还想检查一下C设计团队在这篇文章中没有实现字符到字符串隐式转换的原因,特别是Eric Lippert的答案 代码中另一个明显的流程是赋值运算符=和等式检查==之间的混淆。这是常见的bug来源。做条件句时一定要检查它 我

我正在将数据从Arduino发送到控制台。接收到数据触发事件后。但我现在面临这个错误,无法将类型“char”隐式转换为“string”


将单引号更改为双引号。单引号用于字符,双引号用于字符串

无法将类型“char”隐式转换为“string”

您可能需要查看铸造和类型约定。看见您可能还想检查一下C设计团队在这篇文章中没有实现字符到字符串隐式转换的原因,特别是Eric Lippert的答案

代码中另一个明显的流程是赋值运算符=和等式检查==之间的混淆。这是常见的bug来源。做条件句时一定要检查它


我还注意到你有一个无限循环,即当为真时。只要确保它不会变成一个无限循环,如果你知道我的意思:D.

注意以下几点:赋值=与相等=;字符串vs char'@WilburOmae很好,我完全错过了对等式的赋值:/@Terrytson这是一个常见的bug源,不是吗?实际上,我正在与Arduino、Accelerator和unity合作。我希望unity从串行端口获取数据以生成事件,但失败了。我只想知道,如果最后获取的数据是1,2,3,4,那么它应该生成一个result@SubhamSamir我知道很容易找到解决问题的快速方法,但是如果你不花时间去理解潜在的问题,你会在未来的项目中重复同样的问题。其中一个问题是:了解c中的强制转换以及char和string之间的区别。另一个问题是:知道c语言中=和==之间的区别这在编程语言中是很常见的。现在我得到了一个错误-不能隐式地将字符串转换为bool@SubhamSamir逻辑是这样的:当您写入if data\u rx=1时,您所做的实际上是将值1\r分配给data\u rx,但您没有做任何相等的操作比较这意味着您正在执行ifstring类型,而if语句需要bool。在进行比较时,始终不采用of=与==进行比较;我再强调也不为过。
        SerialPort myport = new SerialPort();
        myport.BaudRate = 115200;
        myport.PortName = "COM14";
        myport.Open();

        while (true)
        {
            string data_rx = myport.ReadLine();
            Console.WriteLine(data_rx);
            if (data_rx == "1\r")
            {
                Console.WriteLine("up");
            }
            else if(data_rx == "2\r")
            {
                Console.WriteLine("Down");
            }
            else if (data_rx == "3\r")
            {
                Console.WriteLine("Left");
            }
            else if (data_rx == "4\r")
            {
                Console.WriteLine("right");
            }