درون پرانتز این متد خالی است
این متد فقط برای دریافت یک کاراکتر بکار می رود .
این متد می تواند کلیدهای عددی ماشین حساب ، کلیدهای عددی بالای حروف ،کلیدهای تابعی ، کلیدهای حرفی ، و ترکیب کلیدهای کنترلی با سایر کلیدها را تشخیص دهد
خروجی readkey چیست ؟
این متد نمونه ای از شی ConsoleKeyInfo را بر می گرداند .
پس خود کاراکتر فشرده شده را بر نمی گرداند
چطور از readkey استفاده کنیم ؟
* ابتدا نمونه ای از ConsoleKeyInfo را تعریف کنیم
* سپس مقدار بازگشتی readkey را در نمونه قرار می دهیم
* در نهایت از ویژگیهای این نمونه برای تشخیص ورودی استفاده کنیم
==========================================
مثال )
در اینجا متغیری به نام info را تعریف می کنیم
ConsoleKeyInfo info = Console.ReadKey();
ویژگی KeyChar
کاراکتر فشره شده در این ویژگی قرار می گیرد
مثال )با readkey ، کلیدی را دریافت کرده و کاراکتر انرا نمایش دهید
public static void Main()
{
ConsoleKeyInfo info = Console.ReadKey();
char s = info.KeyChar;
Console.Write(s);
Console.ReadKey();
}
ویژگی Modifiers
هر وقت با فشردن کلیدها ی دیگر ، یکی یا چند تا از کلیدهای ترکیبی را هم فشردید ، نام ان کلیدها ی ترکیبی به همراه کاراکتر درخواست شده در Modifiers قرار می گیرند
مثال 1 )
برنامه زیر را اجرا کنید و خروجی modifires را ببنید
public static void Main()
{
ConsoleKeyInfo cki;
cki = Console.ReadKey();
Console.Write(cki.Modifiers);
Console.ReadKey();
}
برای مثال :
کلید 2 را به تنهایی فشار دهید
خروجی
20
صفر یعنی هیچیک از کلیدهای ترکیبی فشرده نشده است
کلید 2 را با alt فشار دهید
خروجی
2alt
یعنی شما کاراکتر 2 را در خواست کرده اید و همزمان alt هم فشرده شده است
===========================================
به مثال زیر توجه کنید :
در این برنامه با یک پیام نشان داده می شود که کدام یک از کلیدهای ترکیبی و هزمان با کدام کلید دیگر ، فشرده شده است
public static void Main()
{
ConsoleKeyInfo cki;
Console.TreatControlCAsInput = true;
Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
Console.WriteLine("Press the Escape (Esc) key to quit: \n");
do
{
cki = Console.ReadKey();
Console.Write(" --- You pressed ");
if ((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+");
if ((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+");
if ((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+");
Console.WriteLine(cki.Key.ToString());
} while (cki.Key != ConsoleKey.Escape);
}
=========================================
ویژگی key
این ویژگی با جزئیات بیشتری مشخص می کند که کدام کلید را فشرده اید
مثال )
برنامه زیر را اجرا کنید :
public static void Main()
{
ConsoleKeyInfo cki;
cki = Console.ReadKey();
Console.Write(cki.Key);
Console.ReadKey();
}
کلید e را فشار دهید
خروجی :
eE
کلید 2 قسمت عددهای بالای حروف را فشار دهید
خروجی :
2D
D در اینجا به معنی این است که کلد 2 بخش عددی را فشرده اید
کلید 2 بخش ماشین حساب را فشار دهید
خروجی :
2NUMPAD2
یعنی با فشرد ن کلید 2 بخش ماشین حساب کاراکتر 2 را وارد کرده اید
============================================