8 Dinge, die man in C# anders macht wie in Visual Basic
Wer immer noch mit Visual Basic .NET programmiert, sollte sich mal umschauen und auf C# umsteigen. Eigentlich müsste es C# .NET heißen, da C# auch ein Teil des .NET Frameworks ist. Der Syntax basiert auf C.
Wieso? Na, weil C# objektorientierter ist und eine schöne Syntax hat, deswegen
.
Da C# auch zur .NET Framework gehört, ist der Umstieg zur C# sehr leicht. Man muss nur auf diese 8 Dinge aufpassen.
1. Das Semikolon
Häufigster Anfängerfehler: Semikolon (;) fehlt. In C# muss nach jeder Anweisung ein Semikolon hin. Man kann sogar mehrere Befehle in einer Zeile schreiben, was in Visual Basic nicht geht.
2. Groß- und Kleinschreibung
In C# wird die Groß- und Kleinschreibung beachtet. Nicht in Visual Basic.
Visual Basic Code:
Dim Var As Integer = 0
vAr = 5
vaR = 10
VAR = 13
Console.WriteLine(Var)
' Gibt 13 aus ^^
C# Code:
int Var = 0;
vAr = 5;
vaR = 10;
VAR = 13;
Console.WriteLine(Var);
' Gibt 0 aus ^^
Natürlich gilt das nicht nur für Variablen, sondern auch für Methoden und Funktionen.
console.writeline("blah"); // C# gibt hier eine Fehlermeldung aus
Console.WriteLine("blah"); // so ist's richtig
3. New Befehl
Dim form As New frmForm()
form.Show()
Geht bei C# nicht so einfach. Man muss zunächst form Definieren und es dann erst new frmForm zuweisen.
frmForm form = new frmForm();
form.Show();
4. Arrays
Dim str(6) As String
str(0) = "blah"
str(1) = "blahblah"
In C# muss man die Arrayfelder in eckigen Klammern ([]) angeben, sonst denkt C#, dass es sich um eine Methode oder Funktion handelt.
string str = new string[6];
str[0] = "blah";
str[1] = "blahblah";
5. = ←→ ==
Wie würdest du in Visual Basic schreiben, wenn du willst, dass das Programm x = 4 ausführen soll, wenn y 10 beträgt? Ganz richtig, nämlich so:
If y = 10 Then
x = 4
End If
Und in C#? Natürlich so:
if (y = 10) { // Falsch! Das hier gibt eine Fehlermeldung aus
x = 4;
}
Richtig müsste es so heißen:
if (y == 10) {
x = 4;
}
Achte auf das ==! Wenn du Werte miteinander vergleichen willst, musst du den Operator == nehmen, nicht den Zuweisungsoperator =.
6. Typumwandlung
Die gute CType Methode gibt es bei C# nicht.
Dim i As Integer = 15
Dim str As String = CType(i, String) // str = "15"
Aber dafür was besseres
int i = 15;
string str = (int)i;
Praktisch, nicht? Man schreibt vor der Variable, mit der man die Umwandlung durchführen möchte, einfach in Klammern den Zieltyp hin.
7. Subs und Functions
Public Sub WriteInteger(ByVal i as Integer)
Console.WriteLine(GetStringFromInt(i))
' Wandelt mit der Funktion GetStringFromInt() den Integer
' in ein String um und gibt sie dann aus
End Sub
Public Function GetStringFromInt(ByVal i As Integer) As String
Return CType(i, String)
' Wandelt den Integer in ein String um
End Function
In C# gibt es keine Schlüsselwörter wie Sub oder Function. Subs nennt man in C# void.
public void WriteInteger(int i) {
Console.WriteLine(GetStringFromInt(i));
}
Was ist mit Funktionen? Die haben keinen Namen.
public string GetStringFromInt(int i) {
return (string)i;
}
Man definiert gleich einen String, mit einem Block, der Anweisungen enthält.
8. Konstruktoren
Hast du dich schon mal gefragt, wie man Konstruktoren für Klassen definieren kann? Also einen “void New()” gibt es in C# sicherlich nicht.
Class MyClass
Private _str As String
Public Sub New(ByVal str As String)
_str = str
End Sub
End Class
In C# definiert man Konstruktoren, in dem man einen Block mit der Klassenname erstellt, aber keine Einheit haben darf.
class MyClass {
private string _str;
public MyClass(string str) { // Konstruktor
_str = str;
}
}
Puuh, und das waren die 8 Dinge. Hoffe, dass dieser Post dir gefallen hat
.
Kommentar abgeben: