VB.NET字节问题

时间:2009-08-02 23:40:06

标签: vb.net nothing

我正在将一些c#代码移植到vb.net,目前正试图弄清楚如何做到这一点。

byte isEndReached = //get some data

if (isEndReached != 0)
{
   for (int y = 0; y < isEndReached ; y++)
   {
     //do some stuff
   }

}

我的尝试:

 Dim isEndReached As Byte = ''//getsomedata
 If Not isEndReached Is Nothing Then 
 For y As Byte = 0 To isEndReached - 1
     ''//do some stuff
 Next
 End If

问题是我收到以下错误:

'Is'运算符不接受'Byte'类型的操作数。操作数必须是引用或可空类型。

我该如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

您不能将Is与值类型一起使用。同样,Nothing对值类型的含义与对引用类型的含义不同。你可以这样写:

If isEndReached <> 0 Then

或者像这样:

If isEndReached <> Nothing Then

并查看你的代码,我实际上是这样写的,以防函数以某种方式返回字节的负值:

If isEndReached > 0 Then

或者在前一行声明你的字节,然后在它小于isEndReached时循环:

Dim y As Byte
While y < isEndReached
    ''...
    y += 1
End While

你的For与C#代码的含义完全不同,但它实际上应该是更好的匹配 - 你要比较字节到字节而不是ints到字节。