Frage

Ich bin Portierung einig c # -Code vb.net, zur Zeit, um herauszufinden, wie dies zu tun ..

byte isEndReached = //get some data

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

}

Mein Versuch:

 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

Problem ist Ich erhalte die folgende Fehlermeldung:

'Is' Operator nicht Operanden vom Typ 'Byte' akzeptieren. Operanden müssen Referenz- oder Nullable-Typ sein.

Wie soll ich dieses Problem beheben?

Danke!

War es hilfreich?

Lösung

Sie können nicht Is mit Werttypen verwenden. Ebenso hat Nothing eine andere Bedeutung für Werttypen als Referenz-Typen. Sie können es einfach schreiben wie folgt aus:

If isEndReached <> 0 Then

oder wie folgt aus:

If isEndReached <> Nothing Then

und auf den Code suchen, würde ich es dies schreibe tatsächlich wie im Falle der Funktion irgendwie einen negativen Wert für das Byte zurückgibt:

If isEndReached > 0 Then

oder alternativ Ihr Byte in der vorhergehenden Zeile deklariert und dann die Schleife nur während es weniger als isEndReached:

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

Ihr For nicht die exakt gleiche Bedeutung wie der C # -Code entweder, aber es sollte eigentlich ein besser Match- Sie vergleichen Bytes Bytes anstatt ints Bytes sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top