在.NET中,为什么SerialPort.ReadExisting()返回String而不是字节数组?

Jes*_*aig 1 .net c# serial-port

在.NET SerialPort类中,该ReadExisting()方法返回一个String字节数组而不是字节数组.考虑到RS232通常用于移动7或8位值(这可能是也可能不是可打印字符),这似乎是一个奇怪的选择.有这个选择的理由吗?

目前我最终使用System.Text.Encoding.GetBytes(recvd_data)转换String为字节数组.有更有效的方法吗?

Dav*_*vid 6

SerialPort有一个Read重载读入指定的Byte[].

http://msdn.microsoft.com/en-us/library/ms143549(v=vs.100).aspx


gle*_*eng 5

我广泛使用过SerialPort,我发现读取一系列字节的最佳方法是多次调用ReadByte(). 是的,您一次读取一个字节,但我发现保持简单可以避免出现问题。

充其量,此方法将使您不必进行转换(因为您将读入字节数组)。