Heim >Backend-Entwicklung >C++ >Wie kann ich umgeleitete Konsoleneingaben in C# erkennen?
Bestimmen umgeleiteter Konsoleneingaben in C#-Anwendungen
Konsolenanwendungen sind stark auf Eingabe-/Ausgabevorgänge angewiesen. Allerdings kann die Quelle dieser Eingabe – sei es eine Tastatur oder ein umgeleiteter Stream (z. B. eine Datei) – das Anwendungsverhalten dramatisch verändern. Dieser Artikel zeigt, wie umgeleitete Konsoleneingaben in C# effektiv erkannt werden.
Überprüfung auf Weiterleitung
Die einfachste Methode verwendet die Funktion FileType()
. Eine Hilfsklasse vereinfacht diese Prüfung:
<code class="language-csharp">public static class ConsoleHelper { public static bool IsInputRedirected() { return FileType.Char != GetFileType(GetStdHandle(StdHandle.Stdin)); } }</code>
Umsetzung
Um den Helfer zu nutzen, rufen Sie einfach an:
<code class="language-csharp">bool isRedirected = ConsoleHelper.IsInputRedirected();</code>
Ein true
-Ergebnis zeigt an, dass die Eingabe von einer anderen Quelle als der Tastatur stammt (z. B. einer Datei).
zugrunde liegende native Methoden
Der Helfer nutzt diese Win32-API-Funktionen:
FileType
: Listet Dateitypen auf (Unbekannt, Datenträger, Zeichen, Pipe).StdHandle
: Stellt Standardhandles dar (Stdin, Stdout, Stdderr).GetFileType
: Ruft den Typ eines bestimmten Handles ab.GetStdHandle
: Ruft ein Handle für ein Standardgerät ab..NET 4.5 und spätere Vereinfachung
.NET Framework 4.5 und spätere Versionen bieten eine integrierte, prägnantere Methode:
<code class="language-csharp">bool isRedirected = Console.IsInputRedirected;</code>
Dies gibt direkt einen booleschen Wert zurück, der den Umleitungsstatus angibt.
Durch den Einsatz dieser Techniken können Entwickler robuste Konsolenanwendungen erstellen, die ihre Funktionalität basierend auf der Eingabequelle anpassen und so die Benutzererfahrung und Anwendungsflexibilität verbessern.
Das obige ist der detaillierte Inhalt vonWie kann ich umgeleitete Konsoleneingaben in C# erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!