Ausdrücke ohne Wert in C♯
Beispiel
Program.cs
public static class Program
{ public static void Main()
{ global::System.IO.Directory.CreateDirectory( "orkten" ); }}Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.SetWindowSize( 80, 20 ); }}Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( global::System.Console.SetWindowSize( 80, 20 )); }}- Konsole
Program.cs(4,5): error CS1502: The best overloaded method match for 'System.IO.TextWriter.WriteLine(char)' has some invalid arguments
Program.cs(4,7): error CS1503: Argument 1: cannot convert from 'void' to 'char'- »msdn.microsoft.com/library/system.console.setwindowsize« (vereinfacht und übersetzt)
- Namensraum »global::System«
- Klasse »Console«
void SetWindowSize( int, int )
- Stellt die Größe des Fensters ein.
Erklärung
Methoden mit dem Ergebnistyp »void« können gar nicht mehr in dem Ausdruckrahmen oder in einer Ausgabeanweisung ausgewertet werden. Sie müssen als Ausdruck einer Auswertungsanweisung ausgewertet werden.
Solche void-Methoden haben keinen Wert, sie haben nur eine Wirkung. Davor hatten wir schon Methoden kennengelernt, die nur einen Wert haben, oder die einen Wert und eine Wirkung haben.
Übung
Geben Sie zu den folgenden Methoden jeweils an, ob die Auswertung eines Aufrufs dieser Methoden jeweils einen Wert ergibt oder ob sie eine Wirkung hat (oder beides oder keines von beidem).
- global::System.Math.Truncate(double)
- global::System.Console.ResetColor()
- global::System.Console.Write(double)
- global::System.Convert.ToString(double)