2016-12-10 2 views
2

Ich habe immer gedacht, dass ein Verfahren anders als nichtig einen Wert zurückgeben muß, egal, was aber, wenn wir dieses Beispiel für habenInteressante Code-Schnipsel

private int Foo() 
    { 
     while (true) 
     { 

     } 
    } 

Es gibt keine Kompilierung-Fehler hier und ich denke, das ist, weil Die Schleife ist unendlich C# kann garantieren, dass sie nicht beendet wird, ohne einen Wert zurückzugeben. Hab ich recht ?

Antwort

0

Nur eine nicht void-Funktion mit reachable Endpunkt muss einen Wert zurückgeben.

Für weitere Informationen, überprüfen Sie this answer von Eric Lippert.

2

Ja, wenn die Funktion für immer ausgeführt wird, ist der Rückgabewert redundant, so dass der Compiler ihn einfach ignoriert.

Verwandte Themen