Más bien depende de la naturaleza del formato de datos del puerto serie. Si los datos consisten principalmente en caracteres de texto ASCII intercalados con el carácter de control ocasional, puede insertarlos en la cadena, p.
var data1 = Encoding.ASCII.GetBytes("Foo\x1CBar\x1CBaz");
Sin embargo, si los datos se compone de varios campos de distintos tipos de datos, entonces la clase BitConverter
puede ser más útil, por ejemplo,
var data2 = new List<byte>();
// Add an int value
data2.AddRange(BitConverter.GetBytes(6));
// Add a control character
data2.Add(0x1C);
// Add an ASCII-encoded string value
data2.AddRange(Encoding.ASCII.GetBytes("Hello"));
Como otros han señalado, ASCII no es la única serie de codificación se puede utilizar, pero desde un puerto serie es la más probable.
Antes de responder a su pregunta, me interesaría saber por qué está tratando de convertir una cadena en una matriz de bytes. –
Estoy escribiendo una función que analizará una matriz de bytes procedente de un puerto en serie, pero estoy trabajando a ciegas en este momento y no tengo datos reales para probar. Como tengo la documentación que muestra el formato, puedo crear mis propios datos, y me gustaría simplemente escribirlo como una cadena .Net, convertir eso a una matriz de bytes, y luego analizar eso usando mi función. Pero tal vez hay una mejor manera. Estoy abierto a sugerencias con respecto a eso también. – JimDaniel