Unterschied von int und void?
Ich bin dabei mir c# beizubringen. Allerdings frage ich mich da was der unterschied bei der mothode static in main() und static void main() ist. Ich weiß nur, das bei int eine schließung über return 0;/1;/oder -1; folgt. Bei void geschieht dies auch und bei int wird der daten angebeben, bei void nicht. Bei den beispielprogrammen aus dem buch fand ich aber bei keinen der methoden angegebene daten, außer console.writeline(). Dies dann aber auch bei beiden.
P.s. ich bin noch nicht weit und das internet bringt auch keine fragelösung in mein gehirn
7 Antworten
Main ist die Haupt-Einsprungs-Methode. Die wird von keiner anderen Methode aufgerufen, sondern vom Rahmenwerk beim Start des Programms.
Du kannst Dir nun aussuchen, ob Dein Programm einen Wert (int) zurückgeben soll oder nicht. Bei einem Konsolenprogramm kann der Rückgabewert z.B. durch eine cmd/bat-Datei ausgewertet werden.
Bei void main hast du einfach kein Rückgabewert.
Die Hauptfunktion int main kann als Rückgabe eine Ganzzahl beinhalten. Diese kann man nach Abschluss des Programms in den Umgebungsvariablen des BS abfragen.
Du kannst das klassisch unter Windows mal folgendermaßen testen:
Ping gibt den Erfolg eines Pings durch eine 0 wieder. Den Misserfolg durch eine 1.
Ping also mal unter der Konsole dich selbst an (localhost). Danach fragst du die Umgebungsvariable errorlevel durch "echo %errorlevel%" ab
Das gleiche machst du dann nochmal mit einem ping zu 100.200.300.400 oder irgendeine Adresse, die du nicht anpingen kannst. Da ist der ErrorLevel, also der Rückgabewert, 1.
Bei der Definition jeder Methode musst du den Typ des Rückgabewertes angeben. Em Ende dieser Methode musst du per "return" einen Wert zurückgeben, der diesem Typ entspricht.
"void" (https://translate.google.de/#en/de/void) bildet dabei eine Ausnahme, es bedeutet "kein Rückgabewert".
"int" steht für Integer (https://translate.google.de/#en/de/Integer), heißt du gibst eine Zahl zurück, die (in diesem Fall) angibt, ob das Programm erfolgreich abgeschlossen wurde (0; am Ende steht daher "return 0;" -> wenn der Code bis hierher erfolgreich ausgeführt wurde, wird "0" zurückgegeben) oder nicht.
Wenn du irgendetwas nicht verstanden hast, sag einfach Bescheid, allerdings muss ich zugeben, dass ich C# nicht kann.
Wenn du "int" als Rückgabetyp angibst, solltest du auch eine Ganzzahl zurückgeben, auch wenn es manchmal auch anders geht.
Wenn du "void" angibst, wird eigentlich nichts zurückgegeben.
Naja, bei einer void- Methode wird kein Wert zurückgegeben, bei einer int Methode wird einfach ein Integer, ganze Zahl zurückgegeben.
https://msdn.microsoft.com/de-de/library/yah0tteb.aspx
Void ist eine Methode ohne Rückgabewert, Int ist eine Methode welche einen Int-Wert zurückgibt. Diese Methoden müssen auch so aufgerufen werden. Neben Int kannst du den Rückgabetypen ändern indem du einen anderem im Deklarationsrumpf angibst. Bsp. Public String oder Private float.
Allgemein kann jede beliebige Ganzzahl zurückgegeben werden.
Bei der Main Methode soll über den Rückgabewert aber zusätzlich angegeben werden, ob das Programm ordnungsgemäß lief (sprich : Ob es Fehler gab). 0 bei einem fehlerfreien Ablauf und meist eine negative Zahlt (-1 ist es dann oft) für einen Fehler (Letztendlich könnte man aber über die zurückgegebene Zahl auch verschiedene Fehlertypen angeben, daher kann man das nicht auf -1, 0 und 1 beschränken)