Estoy enviando datos desde Arduino a la consola. Después de recibir el evento desencadenante de datos. Pero ahora me enfrento a este error "no se puede convertir implícitamente el tipo 'char' a 'string'"

introduzca la descripción de la imagen aquí

-4
Subham Samir 9 may. 2019 a las 23:47

3 respuestas

La mejor respuesta

Cambia tus comillas simples a comillas dobles. Las comillas simples son para caracteres y las comillas dobles son para cadenas.

5
Terry Tyson 9 may. 2019 a las 20:49

No se puede convertir implícitamente el tipo 'char' a 'string'

Es posible que desee consultar las convenciones de casting y tipo. Consulte docs. También puede consultar las razones dadas para que el equipo de diseño de C # no implemente la conversión implícita de caracteres a cadenas en este otro pregunta sobre SO (verifique particularmente la respuesta de Eric Lippert).

Otro flujo que es evidente en su código es la confusión entre el operador de asignación = y la verificación de igualdad ==. Es una fuente común de errores. Siempre échale un vistazo cuando hagas condicionales.

También noto que tienes un bucle infinito, es decir, while (true). Solo asegúrese de que no se convierta en un bucle infinito (si sabe a qué me refiero: D).

1
Wilbur Omae 9 may. 2019 a las 21:03
        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");
            }
0
Subham Samir 10 may. 2019 a las 05:48