Menentukan Input Konsol Diubah Hala dalam Aplikasi C#
Aplikasi konsol sangat bergantung pada operasi input/output. Walau bagaimanapun, sumber input ini—sama ada papan kekunci atau strim diubah hala (seperti fail)—boleh mengubah gelagat aplikasi secara mendadak. Artikel ini menunjukkan cara mengesan input konsol diubah hala dalam C# dengan berkesan.
Menyemak Ubah Hala
Kaedah yang paling mudah menggunakan fungsi FileType()
. Kelas pembantu memudahkan semakan ini:
<code class="language-csharp">public static class ConsoleHelper { public static bool IsInputRedirected() { return FileType.Char != GetFileType(GetStdHandle(StdHandle.Stdin)); } }</code>
Pelaksanaan
Untuk menggunakan pembantu, hanya hubungi:
<code class="language-csharp">bool isRedirected = ConsoleHelper.IsInputRedirected();</code>
Hasil true
menunjukkan input berasal daripada sumber selain papan kekunci (cth., fail).
Kaedah Asli yang Berasaskan
Pembantu menggunakan fungsi API Win32 ini:
FileType
: Menghitung jenis fail (Tidak diketahui, Cakera, Char, Paip).StdHandle
: Mewakili pemegang standard (Stdin, Stdout, Stderr).GetFileType
: Dapatkan semula jenis pemegang yang diberikan.GetStdHandle
: Mendapat pemegang ke peranti standard..NET 4.5 dan Penyederhanaan Kemudian
.NET Framework 4.5 dan versi yang lebih baru menyediakan kaedah terbina dalam yang lebih ringkas:
<code class="language-csharp">bool isRedirected = Console.IsInputRedirected;</code>
Ini mengembalikan secara langsung boolean yang menunjukkan status ubah hala.
Dengan menggunakan teknik ini, pembangun boleh membina aplikasi konsol yang mantap yang menyesuaikan fungsi mereka berdasarkan sumber input, meningkatkan pengalaman pengguna dan fleksibiliti aplikasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Input Konsol Diubah Arah dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!