VB.NET字节问题

VB.NET字节问题,vb.net,nothing,Vb.net,Nothing,我正在将一些c#代码移植到vb.net,目前正试图弄清楚如何做到这一点 byte isEndReached = //get some data if (isEndReached != 0) { for (int y = 0; y < isEndReached ; y++) { //do some stuff } } 问题是我遇到以下错误: “Is”运算符不接受“Byte”类型的操作数。操作数必须是引用类型或可为空的类型 我该怎么解决这个问题 谢谢 不能对值

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

byte isEndReached = //get some data

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

}
问题是我遇到以下错误:

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

我该怎么解决这个问题


谢谢

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

If isEndReached <> 0 Then
If isEndReached <> Nothing Then
或者,也可以在前一行声明字节,然后在其小于isEndReached时循环:

Dim y As Byte
While y < isEndReached
    ''...
    y += 1
End While
Dim y作为字节
而你却被激怒了
''...
y+=1
结束时

您的For与C代码的含义也不完全相同,但它实际上应该更匹配—您将字节与字节进行比较,而不是将整数与字节进行比较。

如果您正在移植代码,为什么要更改它?原始代码验证isChecked不同于零,但您将其更改为将其与零进行比较。。此外,变量“y”的类型也发生了变化(int=>byte)。这些变化的原因是什么?谢谢!我正在使用If Isandreached 0,然后它按照我想要的方式工作。
If isEndReached > 0 Then
Dim y As Byte
While y < isEndReached
    ''...
    y += 1
End While