Menentukan Sumber Input dalam Aplikasi Konsol C#
Banyak aplikasi konsol memerlukan membezakan antara input papan kekunci dan input yang diubah hala daripada fail. Ini penting untuk menyesuaikan gelagat aplikasi berdasarkan asal input.
Pendekatan Paling Cekap
Kaedah paling berkesan untuk mengesan pengalihan input melibatkan penggunaan Windows FileType()
fungsi API melalui P/Invoke. Kelas pembantu berikut memudahkan proses ini:
<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>
Pelaksanaan
Menyemak input diubah hala adalah mudah:
<code class="language-csharp">bool isRedirected = ConsoleEx.IsInputRedirected;</code>
Keupayaan .NET 4.5 Dipertingkat
Perlu ambil perhatian bahawa versi .NET 4.5 dan yang lebih baru menyertakan fungsi terbina dalam untuk tujuan ini. Kelas pembantu tidak diperlukan; sebaliknya, gunakan:
<code class="language-csharp">bool isRedirected = Console.IsInputRedirected;</code>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Pengalihan Input (Papan Kekunci lwn. Fail) dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!