我使用VB.net Visual Studio 2008作为测试夹具,使用serialport类编写和读取4个USB虚拟串行端口。
正在发生的奇怪的事情是,看看下面的代码,ReceivedString在鼠标悬停时显示为“”或空,但ReceivedStringLength表示37.这怎么可能?这两个变量都在私有子中声明。有没有人遇到过这种情况,可能是Visual Studio 2008中的一个错误?
ReceivedString = SerialPortMaestro.ReadExisting
ReceivedStringLength = Len(ReceivedString)
答案 0 :(得分:0)
.NET使用BStrings
,它以长度为前缀并以空值终止。因此,如果RecievedString
中的第一个字符是null
字符('\0'
),则不会打印它,因为字符串以其第一个空字符结束。