Console.Clear を使用してコンソール内の 1 行を消去できますか?
Console.Clear() の機能を調べながら、開発者は、他のコンテンツをそのままにして、コンソール内の特定の行を選択的に消去する必要があることに遭遇しました。この質問では、コンソール上のコンテンツの消去のニュアンスを、参照と値の両方で詳しく調べます。
コンソールのクリアについて
Console.Clear() は通常、コンテンツ全体をクリアします。コンソール画面の。ただし、特定のシナリオでは、単一行のみを消去することが望ましい場合があります。これは、質問を消去して回答のみを表示する必要がある、一連の質問と回答を扱う場合に特に関係します。
値の種類の制限
渡すとき値ごとに値を指定すると、元の変数はその後の変更の影響を受けません。これにより、value によって返された値を含む行を選択的に消去することが困難になります。そのため、main 関数は、これらの値を消去して再度出力するためにこれらの値にアクセスすることはできません。
代替: カーソル位置の制御
単一行を選択的に消去するには、次のようにします。 Console.SetCursorPosition 関数を利用できます。この関数を使用すると、プログラマはカーソルを指定された任意の行番号に移動できます。 Console.SetCursorPosition と特定の行をクリアするカスタム関数を組み合わせることで、他の画面内容に影響を与えることなく、選択した行を消去することが可能になります。
カスタム行クリア関数
次のコード スニペットは、単一のデータを消去する必要性に対処する ClearCurrentConsoleLine() という名前のカスタム関数を示しています。 line:
public static void ClearCurrentConsoleLine() { int currentLineCursor = Console.CursorTop; Console.SetCursorPosition(0, Console.CursorTop - 1); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, currentLineCursor); }
使用例
ClearCurrentConsoleLine() 関数の使用例を次のコードに示します。
Console.WriteLine("Test"); Console.SetCursorPosition(0, Console.CursorTop - 1); ClearCurrentConsoleLine();
Inこの例では、文字列「Test」がコンソールに書き込まれ、カーソルが 1 行上に移動します。 ClearCurrentConsoleLine() 関数が呼び出され、テスト出力を含む行が消去され、コンソールに空の行が残ります。
追加リソース:
以上がConsole.Clear() は単一行を消去できますか?できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。