C# und VB.Net gemeinsam nutzen

Achtung bei „=“ und Boolean

Da „=“ in VB.Net sowohl für die Übergabe, als auch für den Vergleich dient, wird in folgendem Code

Dim k As Integer = 7
i = j = k

das zweite Gleichheitszeichen als Vergleichsoperator interpretiert – das Ergebnis für i lautet 0 (=False). In C# hingegeben werden die Werte „sauber“ von rechts nach links geschrieben – das Ergebnis von

k = 7;
i = j = k;

ist 7. Ob solch ein Code lesbar ist, sei allerdings dahingestellt.

Eigentlich entspricht der Datentyp Boolean keiner Zahl, was bedeutet, dass in C# mit boolschen Variablen nicht gerechnet werden kann:

int i = 3;
MessageBox.Show ((Int32)(i == 3))*500;

führt zu einem Fehler. Jedoch funktioniert die gleiche Anweisung in VB.Net:

Dim i As Integer = 3
MsgBox(CInt(i = 3) * 500)

und liefert mit dem internen Wert -1 für True als Ergebnis -500. Will man diese Funktionsweise dennoch in C# nachbilden, dann muss mit der Funktion Sign aus der Klasse Math gearbeitet werden.