Détermination de la source d'entrée dans les applications de console C#
De nombreuses applications de console nécessitent de faire la distinction entre la saisie au clavier et la saisie redirigée depuis un fichier. Ceci est essentiel pour adapter le comportement de l'application en fonction de l'origine de l'entrée.
L'approche la plus efficace
La méthode la plus efficace pour détecter la redirection d'entrée consiste à utiliser la fonction API Windows FileType()
via P/Invoke. La classe d'assistance suivante simplifie ce processus :
<code class="language-csharp">public static class ConsoleEx { public static bool IsInputRedirected => FileType.Char != GetFileType(GetStdHandle(StdHandle.Stdin)); // P/Invoke declarations (omitted for brevity) }</code>
Mise en œuvre
La vérification des entrées redirigées est simple :
<code class="language-csharp">bool isRedirected = ConsoleEx.IsInputRedirected;</code>
Capacités .NET 4.5 améliorées
Il est important de noter que .NET 4.5 et les versions ultérieures incluent des fonctionnalités intégrées à cet effet. La classe d'assistance n'est pas nécessaire ; utilisez plutôt :
<code class="language-csharp">bool isRedirected = Console.IsInputRedirected;</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!