Console.Clear Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Löscht die Anzeigeinformationen aus dem Konsolenpuffer und dem entsprechenden Konsolenfenster.
public:
static void Clear();
public static void Clear ();
[System.Runtime.Versioning.UnsupportedOSPlatform("android")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static void Clear ();
static member Clear : unit -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("android")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Clear : unit -> unit
Public Shared Sub Clear ()
- Attribute
Ausnahmen
E/A-Fehler
Beispiele
Im folgenden Beispiel wird die -Methode verwendet, um die Konsole zu löschen, bevor eine -Schleife ausgeführt wird. Der Benutzer wird aufgefordert, eine Vordergrund- und Hintergrundfarbe auszuwählen und eine anzuzeigende Clear Zeichenfolge eingibt. Wenn der Benutzer das Programm nicht beendet, werden die ursprünglichen Vordergrund- und Hintergrundfarben der Konsole wiederhergestellt, und die -Methode wird erneut aufgerufen, bevor die Schleife Clear erneut ausgeführt wird.
using System;
public class Example
{
public static void Main()
{
// Save colors so they can be restored when use finishes input.
ConsoleColor dftForeColor = Console.ForegroundColor;
ConsoleColor dftBackColor = Console.BackgroundColor;
bool continueFlag = true;
Console.Clear();
do {
ConsoleColor newForeColor = ConsoleColor.White;
ConsoleColor newBackColor = ConsoleColor.Black;
Char foreColorSelection = GetKeyPress("Select Text Color (B for Blue, R for Red, Y for Yellow): ",
new Char[] { 'B', 'R', 'Y' } );
switch (foreColorSelection) {
case 'B':
case 'b':
newForeColor = ConsoleColor.DarkBlue;
break;
case 'R':
case 'r':
newForeColor = ConsoleColor.DarkRed;
break;
case 'Y':
case 'y':
newForeColor = ConsoleColor.DarkYellow;
break;
}
Char backColorSelection = GetKeyPress("Select Background Color (W for White, G for Green, M for Magenta): ",
new Char[] { 'W', 'G', 'M' });
switch (backColorSelection) {
case 'W':
case 'w':
newBackColor = ConsoleColor.White;
break;
case 'G':
case 'g':
newBackColor = ConsoleColor.Green;
break;
case 'M':
case 'm':
newBackColor = ConsoleColor.Magenta;
break;
}
Console.WriteLine();
Console.Write("Enter a message to display: ");
String textToDisplay = Console.ReadLine();
Console.WriteLine();
Console.ForegroundColor = newForeColor;
Console.BackgroundColor = newBackColor;
Console.WriteLine(textToDisplay);
Console.WriteLine();
if (Char.ToUpper(GetKeyPress("Display another message (Y/N): ", new Char[] { 'Y', 'N' } )) == 'N')
continueFlag = false;
// Restore the default settings and clear the screen.
Console.ForegroundColor = dftForeColor;
Console.BackgroundColor = dftBackColor;
Console.Clear();
} while (continueFlag);
}
private static Char GetKeyPress(String msg, Char[] validChars)
{
ConsoleKeyInfo keyPressed;
bool valid = false;
Console.WriteLine();
do {
Console.Write(msg);
keyPressed = Console.ReadKey();
Console.WriteLine();
if (Array.Exists(validChars, ch => ch.Equals(Char.ToUpper(keyPressed.KeyChar))))
valid = true;
} while (! valid);
return keyPressed.KeyChar;
}
}
open System
let getKeyPress msg validChars =
Console.WriteLine()
let mutable valid = false
let mutable keyChar = ' '
while not valid do
printfn "%s" msg
let keyPressed = Console.ReadKey()
printfn ""
if validChars |> List.exists (fun ch -> ch.Equals(Char.ToUpper keyPressed.KeyChar)) then
valid <- true
keyChar <- keyPressed.KeyChar
keyChar
// Save colors so they can be restored when use finishes input.
let dftForeColor = Console.ForegroundColor
let dftBackColor = Console.BackgroundColor
let mutable continueFlag = true
Console.Clear()
while continueFlag do
let foreColorSelection =
getKeyPress "Select Text Color (B for Blue, R for Red, Y for Yellow): " [ 'B'; 'R'; 'Y' ]
let newForeColor =
match foreColorSelection with
| 'B' | 'b' ->
ConsoleColor.DarkBlue
| 'R' | 'r' ->
ConsoleColor.DarkRed
| 'Y' | 'y' ->
ConsoleColor.DarkYellow
| _ -> ConsoleColor.White
let backColorSelection =
getKeyPress "Select Background Color (W for White, G for Green, M for Magenta): " [ 'W'; 'G'; 'M' ]
let newBackColor =
match backColorSelection with
| 'W' | 'w' ->
ConsoleColor.White
| 'G' | 'g' ->
ConsoleColor.Green
| 'M' | 'm' ->
ConsoleColor.Magenta
| _ -> ConsoleColor.Black
printfn ""
printf "Enter a message to display: "
let textToDisplay = Console.ReadLine()
printfn ""
Console.ForegroundColor <- newForeColor
Console.BackgroundColor <- newBackColor
printfn "%s" textToDisplay
printfn ""
if Char.ToUpper(getKeyPress "Display another message (Y/N): " [ 'Y'; 'N' ] ) = 'N' then
continueFlag <- false
// Restore the default settings and clear the screen.
Console.ForegroundColor <- dftForeColor
Console.BackgroundColor <- dftBackColor
Console.Clear()
Module Example
Public Sub Main()
' Save colors so they can be restored when use finishes input.
Dim dftForeColor As ConsoleColor = Console.ForegroundColor
Dim dftBackColor As ConsoleColor = Console.BackgroundColor
Dim continueFlag As Boolean = True
Console.Clear()
Do
Dim newForeColor As ConsoleColor
Dim newBackColor As ConsoleColor
Dim foreColorSelection As Char = GetKeyPress("Select Text Color (B for Blue, R for Red, Y for Yellow): ",
{ "B"c, "R"c, "Y"c } )
Select Case foreColorSelection
Case "B"c, "b"c
newForeColor = ConsoleColor.DarkBlue
Case "R"c, "r"c
newForeColor = ConsoleColor.DarkRed
Case "Y"c, "y"c
newForeColor = ConsoleColor.DarkYellow
End Select
Dim backColorSelection As Char = GetKeyPress("Select Background Color (W for White, G for Green, M for Magenta): ",
{ "W"c, "G"c, "M"c })
Select Case backColorSelection
Case "W"c, "w"c
newBackColor = ConsoleColor.White
Case "G"c, "g"c
newBackColor = ConsoleColor.Green
Case "M"c, "m"c
newBackColor = ConsoleColor.Magenta
End Select
Console.WriteLine()
Console.Write("Enter a message to display: ")
Dim textToDisplay As String = Console.ReadLine()
Console.WriteLine()
Console.ForegroundColor = newForeColor
Console.BackgroundColor = newBackColor
Console.WriteLine(textToDisplay)
Console.WriteLine()
If Char.ToUpper(GetKeyPress("Display another message (Y/N): ", { "Y"c, "N"c } )) = "N" Then
continueFlag = False
End If
' Restore the default settings and clear the screen.
Console.ForegroundColor = dftForeColor
Console.BackgroundColor = dftBackColor
Console.Clear()
Loop While continueFlag
End Sub
Private Function GetKeyPress(msg As String, validChars() As Char) As Char
Dim keyPressed As ConsoleKeyInfo
Dim valid As Boolean = False
Console.WriteLine()
Do
Console.Write(msg)
keyPressed = Console.ReadKey()
Console.WriteLine()
If Array.Exists(validChars, Function(ch As Char) ch.Equals(Char.ToUpper(keypressed.KeyChar)))
valid = True
End If
Loop While Not valid
Return keyPressed.KeyChar
End Function
End Module
Das Beispiel basiert auf einer -Methode, um die Auswahl einer Vordergrund- und Hintergrundfarbe durch den GetKeyPress
Benutzer zu überprüfen.
In diesem Beispiel werden die CursorLeft Eigenschaften und sowie die Methoden und CursorTop SetCursorPosition Clear veranschaulicht. Im Beispiel wird der Cursor positioniert, der bestimmt, wo der nächste Schreibzugriff erfolgt, um ein Rechteck mit 5 Zeichen und 5 Zeichen zu zeichnen, indem eine Kombination aus Zeichenfolgen "+", "|" und "-" verwendet wird. Beachten Sie, dass das Rechteck mit einer Kombination aus anderen Zeichenfolgen mit weniger Schritten gezeichnet werden kann.
// This example demonstrates the
// Console.CursorLeft and
// Console.CursorTop properties, and the
// Console.SetCursorPosition and
// Console.Clear methods.
using namespace System;
int origRow;
int origCol;
void WriteAt( String^ s, int x, int y )
{
try
{
Console::SetCursorPosition( origCol + x, origRow + y );
Console::Write( s );
}
catch ( ArgumentOutOfRangeException^ e )
{
Console::Clear();
Console::WriteLine( e->Message );
}
}
int main()
{
// Clear the screen, then save the top and left coordinates.
Console::Clear();
origRow = Console::CursorTop;
origCol = Console::CursorLeft;
// Draw the left side of a 5x5 rectangle, from top to bottom.
WriteAt( "+", 0, 0 );
WriteAt( "|", 0, 1 );
WriteAt( "|", 0, 2 );
WriteAt( "|", 0, 3 );
WriteAt( "+", 0, 4 );
// Draw the bottom side, from left to right.
WriteAt( "-", 1, 4 ); // shortcut: WriteAt("---", 1, 4)
WriteAt( "-", 2, 4 ); // ...
WriteAt( "-", 3, 4 ); // ...
WriteAt( "+", 4, 4 );
// Draw the right side, from bottom to top.
WriteAt( "|", 4, 3 );
WriteAt( "|", 4, 2 );
WriteAt( "|", 4, 1 );
WriteAt( "+", 4, 0 );
// Draw the top side, from right to left.
WriteAt( "-", 3, 0 ); // shortcut: WriteAt("---", 1, 0)
WriteAt( "-", 2, 0 ); // ...
WriteAt( "-", 1, 0 ); // ...
//
WriteAt( "All done!", 0, 6 );
Console::WriteLine();
}
/*
This example produces the following results:
+---+
| |
| |
| |
+---+
All done!
*/
// This example demonstrates the
// Console.CursorLeft and
// Console.CursorTop properties, and the
// Console.SetCursorPosition and
// Console.Clear methods.
using System;
class Sample
{
protected static int origRow;
protected static int origCol;
protected static void WriteAt(string s, int x, int y)
{
try
{
Console.SetCursorPosition(origCol+x, origRow+y);
Console.Write(s);
}
catch (ArgumentOutOfRangeException e)
{
Console.Clear();
Console.WriteLine(e.Message);
}
}
public static void Main()
{
// Clear the screen, then save the top and left coordinates.
Console.Clear();
origRow = Console.CursorTop;
origCol = Console.CursorLeft;
// Draw the left side of a 5x5 rectangle, from top to bottom.
WriteAt("+", 0, 0);
WriteAt("|", 0, 1);
WriteAt("|", 0, 2);
WriteAt("|", 0, 3);
WriteAt("+", 0, 4);
// Draw the bottom side, from left to right.
WriteAt("-", 1, 4); // shortcut: WriteAt("---", 1, 4)
WriteAt("-", 2, 4); // ...
WriteAt("-", 3, 4); // ...
WriteAt("+", 4, 4);
// Draw the right side, from bottom to top.
WriteAt("|", 4, 3);
WriteAt("|", 4, 2);
WriteAt("|", 4, 1);
WriteAt("+", 4, 0);
// Draw the top side, from right to left.
WriteAt("-", 3, 0); // shortcut: WriteAt("---", 1, 0)
WriteAt("-", 2, 0); // ...
WriteAt("-", 1, 0); // ...
//
WriteAt("All done!", 0, 6);
Console.WriteLine();
}
}
/*
This example produces the following results:
+---+
| |
| |
| |
+---+
All done!
*/
// This example demonstrates the
// Console.CursorLeft and
// Console.CursorTop properties, and the
// Console.SetCursorPosition and
// Console.Clear methods.
open System
// Clear the screen, then save the top and left coordinates.
Console.Clear()
let origRow = Console.CursorTop
let origCol = Console.CursorLeft
let writeAt s x y =
try
Console.SetCursorPosition(origCol + x, origRow + y)
printfn $"%s{s}"
with :? ArgumentOutOfRangeException as e ->
Console.Clear()
printfn $"{e.Message}"
// Draw the left side of a 5x5 rectangle, from top to bottom.
writeAt "+" 0 0
writeAt "|" 0 1
writeAt "|" 0 2
writeAt "|" 0 3
writeAt "+" 0 4
// Draw the bottom side, from left to right.
writeAt "-" 1 4 // shortcut: writeAt "---", 1, 4)
writeAt "-" 2 4 // ...
writeAt "-" 3 4 // ...
writeAt "+" 4 4
// Draw the right side, from bottom to top.
writeAt "|" 4 3
writeAt "|" 4 2
writeAt "|" 4 1
writeAt "+" 4 0
// Draw the top side, from right to left.
writeAt "-" 3 0 // shortcut: writeAt "---", 1, 0)
writeAt "-" 2 0 // ...
writeAt "-" 1 0 // ...
writeAt "All done!" 0 6
printfn ""
// This example produces the following results:
//
// +---+
// | |
// | |
// | |
// +---+
//
// All done!
' This example demonstrates the
' Console.CursorLeft and
' Console.CursorTop properties, and the
' Console.SetCursorPosition and
' Console.Clear methods.
Class Sample
Protected Shared origRow As Integer
Protected Shared origCol As Integer
Protected Shared Sub WriteAt(s As String, x As Integer, y As Integer)
Try
Console.SetCursorPosition(origCol + x, origRow + y)
Console.Write(s)
Catch e As ArgumentOutOfRangeException
Console.Clear()
Console.WriteLine(e.Message)
End Try
End Sub
Public Shared Sub Main()
' Clear the screen, then save the top and left coordinates.
Console.Clear()
origRow = Console.CursorTop
origCol = Console.CursorLeft
' Draw the left side of a 5x5 rectangle, from top to bottom.
WriteAt("+", 0, 0)
WriteAt("|", 0, 1)
WriteAt("|", 0, 2)
WriteAt("|", 0, 3)
WriteAt("+", 0, 4)
' Draw the bottom side, from left to right.
WriteAt("-", 1, 4) ' shortcut: WriteAt("---", 1, 4)
WriteAt("-", 2, 4) ' ...
WriteAt("-", 3, 4) ' ...
WriteAt("+", 4, 4)
' Draw the right side, from bottom to top.
WriteAt("|", 4, 3)
WriteAt("|", 4, 2)
WriteAt("|", 4, 1)
WriteAt("+", 4, 0)
' Draw the top side, from right to left.
WriteAt("-", 3, 0) ' shortcut: WriteAt("---", 1, 0)
WriteAt("-", 2, 0) ' ...
WriteAt("-", 1, 0) ' ...
'
WriteAt("All done!", 0, 6)
Console.WriteLine()
End Sub
End Class
'
'This example produces the following results:
'
'+---+
'| |
'| |
'| |
'+---+
'
'All done!
'
Hinweise
Die Verwendung Clear der -Methode entspricht dem Aufrufen des MS-DOS-Befehls cls
im Eingabeaufforderungsfenster. Wenn die -Methode aufgerufen wird, scrollt der Cursor automatisch zur oberen linken Ecke des Fensters, und der Inhalt des Bildschirmpuffers wird mithilfe der aktuellen Hintergrundfarben im Vordergrund auf Leerzeichen Clear festgelegt.
Hinweis
Der Versuch, die -Methode auf aufruft, wenn die Ausgabe einer Konsolenanwendung an eine Datei umgeleitet wird, Clear löst eine IOException aus. Um dies zu verhindern, umschließen Sie immer einen Aufruf der Clear Methode in einer try
...catch
Block.