0

我正在将一些 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

问题是我收到以下错误:

“是”运算符不接受“字节”类型的操作数。操作数必须是引用或可为空的类型。

我该如何解决这个问题?

谢谢!

4

1 回答 1

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# 代码的含义不完全相同,但它实际上应该是更好的匹配 - 您将字节与字节进行比较,而不是整数与字节进行比较。

于 2009-08-02T23:47:14.170 回答