Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengesan Input Konsol Diubah Arah dalam C#?

Bagaimanakah Saya Boleh Mengesan Input Konsol Diubah Arah dalam C#?

DDD
Lepaskan: 2025-01-12 17:02:42
asal
661 orang telah melayarinya

How Can I Detect Redirected Console Input in C#?

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>
Salin selepas log masuk

Pelaksanaan

Untuk menggunakan pembantu, hanya hubungi:

<code class="language-csharp">bool isRedirected = ConsoleHelper.IsInputRedirected();</code>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan