Freigeben über


Console-Klasse

Stellt die Standardstreams für Eingabe, Ausgabe und Fehler bei Konsolenanwendungen dar. Die Klasse kann nicht geerbt werden.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public NotInheritable Class Console
'Usage
Auf die Member einer statischen Klassen wird direkt ohne Instanz der Klasse zugegriffen.
public static class Console
public ref class Console abstract sealed
public final class Console
public final class Console

Hinweise

Bei der Konsole handelt es sich um ein Betriebssystemfenster, in dem Benutzer mit dem Betriebssystem oder einer textbasierten Konsolenanwendung interagieren. Dazu geben sie Texteingaben über die Computertastatur ein und lesen Textausgaben am Computerterminal ab. Beispielsweise wird die Konsole in Windows als Eingabeaufforderungsfenster bezeichnet, das MS-DOS-Befehle akzeptiert. Die Console-Klasse stellt grundlegende Funktionen zur Unterstützung von Anwendungen bereit, die Zeichen von der Konsole lesen und auf die Konsole schreiben.

Konsolen-E/A-Streams

Wenn eine Konsolenanwendung gestartet wird, werden der Konsole vom Betriebssystem automatisch drei E/A-Streams zugeordnet. Die Anwendung kann Benutzereingaben aus dem Standardeingabestream lesen, normale Daten in den Standardausgabestream und Fehlerdaten in den Standard-Fehlerausgabestream schreiben. Für die Anwendung gelten diese Streams als Werte der Eigenschaften In, Out und Error.

Standardmäßig ist der Wert der In-Eigenschaft ein System.IO.TextReader-Objekt, und die Werte der Out-Eigenschaft und der Error-Eigenschaft sind System.IO.TextWriter-Objekte. Diese Eigenschaften können allerdings auch auf Streams festgelegt werden, die nicht die Konsole darstellen, z. B. auf Streams, die Dateien darstellen. E/A-Operationen, die diese Streams verwenden, sind synchronisiert, d. h., mehrere Threads können aus diesen Streams lesen oder in diese schreiben.

Console-Klassenmember, die normalerweise ordnungsgemäß funktionieren, wenn der zugrunde liegende Stream auf eine Konsole zeigt, lösen möglicherweise eine Ausnahme aus, wenn der Stream umgeleitet wird, z. B. an eine Datei. Wenn Sie einen Standardstream umleiten, programmieren Sie die Anwendung daher so, dass System.IO.IOException abgefangen wird.

Zuweilen ist es hilfreich, die Member der Streamobjekte, die durch die Eigenschaften In, Out und Error dargestellt werden, explizit aufzurufen. Die WriteLine-Methode schreibt z. B. Daten standardmäßig in den Ausgabestream, auf die eine Zeichenfolge für den Zeilenabschluss folgt, d. h., auf die Daten folgt ein Wagenrücklauf und ein Zeilenvorschub ("\r\n"). Die Console-Klasse stellt jedoch keine Methode bereit, mit der Daten in den Standard-Fehlerausgabestream geschrieben werden können, und keine Eigenschaft, mit der die Zeichenfolge für den Zeilenabschluss für in diesen Stream geschriebene Daten geändert werden kann.

Sie können dieses Problem beheben, indem Sie die TextWriter.NewLine-Eigenschaft der Out-Eigenschaft oder der Error-Eigenschaft auf eine andere Zeichenfolge für den Zeilenabschluss festlegen. Durch die C#-Anweisung Console.Error.NewLine = "\r\n\r\n"; wird z. B. die Zeichenfolge für den Zeilenabschluss des Standard-Fehlerausgabestreams auf zwei Folgen aus Wagenrücklauf und Zeilenvorschub festgelegt. Dann können Sie die WriteLine-Methode des Fehlerausgabestream-Objekts wie in der C#-Anweisung Console.Error.WriteLine(); explizit aufrufen.

Bildschirmpuffer und Konsolenfenster

Zwei eng verbundene Features der Konsole sind der Bildschirmpuffer und das Konsolenfenster. Text wird eigentlich aus Streams gelesen oder in Streams geschrieben, deren Eigentümer die Konsole ist, auch wenn es den Anschein hat, als würden er aus einem Bereich gelesen oder in diesen geschrieben, der Bildschirmpuffer genannt wird und dessen Eigentümer die Konsole ist. Der Bildschirmpuffer ist ein Attribut der Konsole und ist als rechteckiges Raster aus Zeilen und Spalten angeordnet, in dem jeder Rasterschnittpunkt, also jede Zeichenzelle, ein Zeichen enthalten kann. Jedes Zeichen besitzt eine eigene Vordergrundfarbe, und jede Zeichenzelle eine eigene Hintergrundfarbe.

Der Bildschirmpuffer wird in einem rechteckigen Bereich angezeigt, dem so genannten Konsolenfenster. Das Konsolenfenster ist ein weiteres Attribut der Konsole. Es stellt nicht die Konsole selbst dar, diese ist ein Betriebssystemfenster. Das Konsolenfenster ist ebenfalls in Zeilen und Spalten unterteilt. Es ist kleiner oder gleich groß wie der Bildschirmpuffer und kann verschoben werden, sodass unterschiedliche Bereiche des zugrunde liegenden Bildschirmpuffers angezeigt werden. Wenn der Bildschirmpuffer größer als das Konsolenfenster ist, zeigt die Konsole automatisch Bildlaufleisten an, damit das Konsolenfenster neu über dem Bildschirmpufferbereich positioniert werden kann.

Ein Cursor gibt die Bildschirmpufferposition an, an der Text gerade gelesen oder geschrieben wird. Der Cursor kann ausgeblendet oder sichtbar gemacht werden, und seine Höhe kann geändert werden. Wenn der Cursor angezeigt wird, wird die Position des Konsolenfensters automatisch so verschoben, dass sich der Cursor immer im sichtbaren Bereich befindet.

Der Ursprung für die Zeichenzellenkoordinaten im Bildschirmpuffer ist die linke obere Ecke, und die Position des Cursors und des Konsolenfensters wird relativ zu diesem Ursprung gemessen. Positionen werden mit nullbasierten Indizes angegeben, d. h., die oberste Zeile als Zeile 0 und die am weitesten linke Spalte als Spalte 0. Der maximale Wert für den Zeilen- und Spaltenindex ist jeweils Int16.MaxValue.

Funktionalität

Die Console-Klasse enthält Methoden, die einzelne Zeichen oder ganze Zeilen von der Konsole lesen, und mehrere Schreibmethoden, die automatisch eine Instanz eines Werttyps, eines Arrays von Zeichen oder Gruppen von Objekten in eine formatierte oder unformatierte Zeichenfolge konvertieren und diese Zeichenfolge dann, optional mit einer nachgestellten Zeichenfolge für den Zeilenabschluss, auf die Konsole schreiben. Die Console-Klasse enthält außerdem Methoden und Eigenschaften zum Abrufen oder Festlegen der Größe des Bildschirmpuffers, des Konsolenfensters und des Cursors, zum Ändern der Position des Konsolenfensters und des Cursors, zum Verschieben oder Löschen von Daten im Bildschirmpuffer, zum Ändern von Vorder- und Hintergrundfarben, zum Ändern des auf der Konsolentitelleiste angezeigten Texts sowie zum Abspielen des Sounds für das akustische Signal.

Beispiel

Dieses Codebeispiel veranschaulicht das Lesen aus dem Standardeingabestream und das Schreiben in den Standardausgabestream. Beachten Sie, dass diese Streams mit der SetIn-Methode bzw. mit der SetOut-Methode umgeleitet werden können.

Public Shared Sub Main()
    Console.Write("Hola ")
    Console.WriteLine("Mundo!")
    Console.WriteLine("What is your name: ")
    Dim name As String = Console.ReadLine()
    Console.Write("Buenos Dias, ")
    Console.Write(name)
    Console.WriteLine("!")
End Sub 'Main
public static void Main(string[] args) {
    Console.Write("Hola ");
    Console.WriteLine("Mundo!");
    Console.WriteLine("What is your name: ");
    String name = Console.ReadLine();
    Console.Write("Buenos Dias, ");
    Console.Write(name);
    Console.WriteLine("!");
}
int main()
{
   Console::Write( L"Hola " );
   Console::WriteLine( L"Mundo!" );
   Console::WriteLine( L"What is your name: " );
   String^ name = Console::ReadLine();
   Console::Write( L"Buenos Dias, " );
   Console::Write( name );
   Console::WriteLine( L"!" );
}
public static void main(String[] args)
{
    Console.Write("Hola ");
    Console.WriteLine("Mundo!");
    Console.WriteLine("What is your name: ");
    String name = Console.ReadLine();
    Console.Write("Buenos Dias, ");
    Console.Write(name);
    Console.WriteLine("!");
} //main
Console.Write("Hola ");
Console.WriteLine("Mundo!");
Console.WriteLine("What is your name: ");
var name : String = Console.ReadLine();
Console.Write("Buenos Dias, ");
Console.Write(name);
Console.WriteLine("!");

Vererbungshierarchie

System.Object
  System.Console

Threadsicherheit

Dieser Typ ist sicher bei Multithreadoperationen.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Console-Member
System-Namespace