質問
vb.netにC#コードを移植していますが、現在、これを行う方法を見つけようとしています。
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'のオペランドを受け入れません。オペランドは参照型またはnull入力可能な型である必要があります。
これを修正するにはどうすればよいですか
ありがとう!
解決
値型では 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#コードとまったく同じ意味を持ちませんが、実際には better に一致する必要があります。 intsからbytesまで。
所属していません StackOverflow