Console.Clear Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Cancella dal buffer della console e dalla rispettiva finestra della console le informazioni visualizzate.
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 ()
- Attributi
Eccezioni
Si è verificato un errore di I/O.
Esempio
Nell'esempio seguente viene utilizzato il metodo per cancellare la console prima di eseguire un ciclo, richiede all'utente di selezionare un colore di primo piano e di sfondo e di immettere una stringa Clear da visualizzare. Se l'utente sceglie di non uscire dal programma, vengono ripristinati i colori di primo piano e di sfondo originali della console e il metodo viene chiamato di nuovo prima di rieseguono Clear il ciclo.
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
L'esempio si basa su un metodo per convalidare la selezione GetKeyPress
dell'utente di un colore di primo piano e di sfondo.
In questo esempio vengono CursorLeft illustrate le proprietà e e i metodi e CursorTop SetCursorPosition Clear . L'esempio posiziona il cursore, che determina dove verrà eseguita la scrittura successiva, per disegnare un rettangolo di 5 caratteri per 5 caratteri usando una combinazione di stringhe "+", "|" e "-". Si noti che il rettangolo può essere disegnato con un minor numero di passaggi usando una combinazione di altre stringhe.
// 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!
'
Commenti
ClearL'uso del metodo equivale a richiamare il comando MS-DOS cls
nella finestra del prompt dei comandi. Quando viene chiamato il metodo , il cursore scorre automaticamente fino all'angolo superiore sinistro della finestra e il contenuto del buffer dello schermo viene impostato su spazi vuoti usando i colori di sfondo Clear in primo piano correnti.
Nota
Il tentativo di chiamare il Clear metodo quando l'output di un'applicazione console viene reindirizzato a un file genera un'eccezione IOException . Per evitare questo problema, eseguire sempre il wrapping di una chiamata Clear al metodo in un oggetto try
...catch
Blocco.