Console.ReadKey Yöntem
Tanım
Kullanıcı tarafından basılan bir sonraki karakteri veya işlev tuşunu alır.Obtains the next character or function key pressed by the user.
Aşırı Yüklemeler
| ReadKey() |
Kullanıcı tarafından basılan bir sonraki karakteri veya işlev tuşunu alır.Obtains the next character or function key pressed by the user. Basılan tuş konsol penceresinde görüntülenir.The pressed key is displayed in the console window. |
| ReadKey(Boolean) |
Kullanıcı tarafından basılan bir sonraki karakteri veya işlev tuşunu alır.Obtains the next character or function key pressed by the user. Basılan tuşu, isteğe bağlı olarak konsol penceresinde görüntülenir.The pressed key is optionally displayed in the console window. |
ReadKey()
Kullanıcı tarafından basılan bir sonraki karakteri veya işlev tuşunu alır.Obtains the next character or function key pressed by the user. Basılan tuş konsol penceresinde görüntülenir.The pressed key is displayed in the console window.
public:
static ConsoleKeyInfo ReadKey();
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static ConsoleKeyInfo ReadKey ();
public static ConsoleKeyInfo ReadKey ();
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member ReadKey : unit -> ConsoleKeyInfo
static member ReadKey : unit -> ConsoleKeyInfo
Public Shared Function ReadKey () As ConsoleKeyInfo
Döndürülenler
ConsoleKeyBasılan konsol anahtarına karşılık gelen sabit ve Unicode karakterini tanımlayan bir nesne.An object that describes the ConsoleKey constant and Unicode character, if any, that correspond to the pressed console key. ConsoleKeyInfoNesne Ayrıca, ConsoleModifiers bir veya daha fazla SHIFT, alt veya Ctrl değiştirici tuşuna konsol anahtarıyla aynı anda basıldığında, bu değer bir bit düzeyinde değerlerin birleşimine göre de açıklanmaktadır.The ConsoleKeyInfo object also describes, in a bitwise combination of ConsoleModifiers values, whether one or more Shift, Alt, or Ctrl modifier keys was pressed simultaneously with the console key.
- Öznitelikler
Özel durumlar
InÖzelliği, konsolu dışında bir akıştan yeniden yönlendirilir.The In property is redirected from some stream other than the console.
Örnekler
Yönteminin en yaygın kullanımlardan biri, ReadKey() Kullanıcı bir tuşa basana kadar program yürütmesini durdurmak ve uygulamanın sonlandırması veya ek bir bilgi penceresi görüntülememesidir.One of the most common uses of the ReadKey() method is to halt program execution until the user presses a key and the app either terminates or displays an additional window of information. Aşağıdaki örnek, ReadKey() uygulamayı sonlandırmadan önce kullanıcının Enter tuşuna basması için yöntemini kullanır.The following example uses the ReadKey() method to wait for the user to press the Enter key before terminating the app.
using System;
public class Example
{
public static void Main()
{
DateTime dat = DateTime.Now;
Console.WriteLine("The time: {0:d} at {0:t}", dat);
TimeZoneInfo tz = TimeZoneInfo.Local;
Console.WriteLine("The time zone: {0}\n",
tz.IsDaylightSavingTime(dat) ?
tz.DaylightName : tz.StandardName);
Console.Write("Press <Enter> to exit... ");
while (Console.ReadKey().Key != ConsoleKey.Enter) {}
}
}
// The example displays output like the following:
// The time: 11/11/2015 at 4:02 PM:
// The time zone: Pacific Standard Time
Module Example
Public Sub Main()
Dim dat As Date = Date.Now
Console.WriteLine("The time: {0:d} at {0:t}", dat)
Dim tz As TimeZoneInfo = TimeZoneInfo.Local
Console.WriteLine("The time zone: {0}",
If(tz.IsDaylightSavingTime(dat),
tz.DaylightName, tz.StandardName))
Console.WriteLine()
Console.Write("Press <Enter> to exit... ")
Do While Console.ReadKey().Key <> ConsoleKey.Enter
Loop
End Sub
End Module
' The example displays the following output:
' The time: 11/11/2015 at 4:02 PM
' The time zone: Pacific Standard Time
Metodun bu aşırı yüklemesinin ReadKey Varsayılan olarak, kullanıcının konsola bastığı herhangi bir görüntülenebilir anahtarı yankıyacağını unutmayın.Note that this overload of the ReadKey method by default echoes any displayable keys that the user presses to the console. Bunları bastırmak için ReadKey bir intercept bağımsız değişkeniyle yöntemini çağırın true .To suppress them, call the ReadKey method with an intercept argument of true.
Aşağıdaki örnek, ReadKey() kullanıcıya basılan anahtara ilişkin bilgileri göstermek için yöntemini kullanır.The following example uses the ReadKey() method to display information about which key the user pressed.
using namespace System;
void main()
{
ConsoleKeyInfo cki;
// Prevent example from ending if CTL+C is pressed.
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) != ConsoleModifiers()) Console::Write("ALT+");
if((cki.Modifiers & ConsoleModifiers::Shift) != ConsoleModifiers()) Console::Write("SHIFT+");
if((cki.Modifiers & ConsoleModifiers::Control) != ConsoleModifiers()) Console::Write("CTL+");
Console::WriteLine(cki.Key.ToString());
} while (cki.Key != ConsoleKey::Escape);
}
// This example displays output similar to the following:
// Press any combination of CTL, ALT, and SHIFT, and a console key.
// Press the Escape (Esc) key to quit:
//
// a --- You pressed A
// k --- You pressed ALT+K
// ► --- You pressed CTL+P
// --- You pressed RightArrow
// R --- You pressed SHIFT+R
// --- You pressed CTL+I
// j --- You pressed ALT+J
// O --- You pressed SHIFT+O
// § --- You pressed CTL+U }
using System;
class Example
{
public static void Main()
{
ConsoleKeyInfo cki;
// Prevent example from ending if CTL+C is pressed.
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);
}
}
// This example displays output similar to the following:
// Press any combination of CTL, ALT, and SHIFT, and a console key.
// Press the Escape (Esc) key to quit:
//
// a --- You pressed A
// k --- You pressed ALT+K
// ► --- You pressed CTL+P
// --- You pressed RightArrow
// R --- You pressed SHIFT+R
// --- You pressed CTL+I
// j --- You pressed ALT+J
// O --- You pressed SHIFT+O
// § --- You pressed CTL+U
Class Example
Public Shared Sub Main()
Dim cki As ConsoleKeyInfo
' Prevent example from ending if CTL+C is pressed.
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: " + vbCrLf)
Do
cki = Console.ReadKey()
Console.Write(" --- You pressed ")
If (cki.Modifiers And ConsoleModifiers.Alt) <> 0 Then Console.Write("ALT+")
If (cki.Modifiers And ConsoleModifiers.Shift) <> 0 Then Console.Write("SHIFT+")
If (cki.Modifiers And ConsoleModifiers.Control) <> 0 Then Console.Write("CTL+")
Console.WriteLine(cki.Key.ToString)
Loop While cki.Key <> ConsoleKey.Escape
End Sub
End Class
' This example displays output similar to the following:
' Press any combination of CTL, ALT, and SHIFT, and a console key.
' Press the Escape (Esc) key to quit:
'
' a --- You pressed A
' k --- You pressed ALT+K
' ► --- You pressed CTL+P
' --- You pressed RightArrow
' R --- You pressed SHIFT+R
' --- You pressed CTL+I
' j --- You pressed ALT+J
' O --- You pressed SHIFT+O
' § --- You pressed CTL+U
Açıklamalar
ReadKeyYöntemi, ReadKey bir karakter veya işlev tuşuna basılana kadar yöntemi veren iş parçacığında blokları bekler.The ReadKey method waits, that is, blocks on the thread issuing the ReadKey method, until a character or function key is pressed. Bir ya da daha fazla alt, CTRL ya da SHIFT değiştirici tuşu ile bir karakter veya işlev tuşu birlikte bir tuşa basılabilir.A character or function key can be pressed in combination with one or more Alt, Ctrl, or Shift modifier keys. Ancak, bir değiştirici tuşa tek tek basmak ReadKey metodun dönüşmesine neden olmaz.However, pressing a modifier key by itself will not cause the ReadKey method to return.
Uygulamanıza bağlı olarak, ReadKey yöntemini özelliğiyle birlikte kullanmak isteyebilirsiniz KeyAvailable .Depending on your application, you might want to use the ReadKey method in conjunction with the KeyAvailable property.
ReadKeyStandart giriş, yöntemiyle bir dosyaya yönlendirilse bile, yöntem klavyeden okur SetIn .The ReadKey method reads from the keyboard even if the standard input is redirected to a file with the SetIn method.
Ayrıca bkz.
Şunlara uygulanır
ReadKey(Boolean)
Kullanıcı tarafından basılan bir sonraki karakteri veya işlev tuşunu alır.Obtains the next character or function key pressed by the user. Basılan tuşu, isteğe bağlı olarak konsol penceresinde görüntülenir.The pressed key is optionally displayed in the console window.
public:
static ConsoleKeyInfo ReadKey(bool intercept);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static ConsoleKeyInfo ReadKey (bool intercept);
public static ConsoleKeyInfo ReadKey (bool intercept);
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member ReadKey : bool -> ConsoleKeyInfo
static member ReadKey : bool -> ConsoleKeyInfo
Public Shared Function ReadKey (intercept As Boolean) As ConsoleKeyInfo
Parametreler
- intercept
- Boolean
Konsol penceresinde basılmış tuşunun görüntülenip görüntülenmeyeceğini belirler.Determines whether to display the pressed key in the console window. true Basılan tuşu görüntülememe; Aksi takdirde, false .true to not display the pressed key; otherwise, false.
Döndürülenler
ConsoleKeyBasılan konsol anahtarına karşılık gelen sabit ve Unicode karakterini tanımlayan bir nesne.An object that describes the ConsoleKey constant and Unicode character, if any, that correspond to the pressed console key. ConsoleKeyInfoNesne Ayrıca, ConsoleModifiers bir veya daha fazla SHIFT, alt veya Ctrl değiştirici tuşuna konsol anahtarıyla aynı anda basıldığında, bu değer bir bit düzeyinde değerlerin birleşimine göre de açıklanmaktadır.The ConsoleKeyInfo object also describes, in a bitwise combination of ConsoleModifiers values, whether one or more Shift, Alt, or Ctrl modifier keys was pressed simultaneously with the console key.
- Öznitelikler
Özel durumlar
InÖzelliği, konsolu dışında bir akıştan yeniden yönlendirilir.The In property is redirected from some stream other than the console.
Örnekler
Yönteminin en yaygın kullanımlardan biri, ReadKey Kullanıcı bir tuşa basana kadar program yürütmesini durdurmak ve uygulamanın sonlandırması veya ek bir bilgi penceresi görüntülememesidir.One of the most common uses of the ReadKey method is to halt program execution until the user presses a key and the app either terminates or displays an additional window of information. Aşağıdaki örnek, ReadKey(Boolean) uygulamayı sonlandırmadan önce kullanıcının Enter tuşuna basması için yöntemini kullanır.The following example uses the ReadKey(Boolean) method to wait for the user to press the Enter key before terminating the app. Kullanıcı başka bir tuşa basarsa konsola yankıtılmadığını unutmayın.Note that, if the user presses any other key, it is not echoed to the console.
using System;
public class Example
{
public static void Main()
{
DateTime dat = DateTime.Now;
Console.WriteLine("The time: {0:d} at {0:t}", dat);
TimeZoneInfo tz = TimeZoneInfo.Local;
Console.WriteLine("The time zone: {0}\n",
tz.IsDaylightSavingTime(dat) ?
tz.DaylightName : tz.StandardName);
Console.Write("Press <Enter> to exit... ");
while (Console.ReadKey(true).Key != ConsoleKey.Enter) {}
}
}
// The example displays output like the following:
// The time: 11/11/2015 at 4:02 PM:
// The time zone: Pacific Standard Time
Module Example
Public Sub Main()
Dim dat As Date = Date.Now
Console.WriteLine("The time: {0:d} at {0:t}", dat)
Dim tz As TimeZoneInfo = TimeZoneInfo.Local
Console.WriteLine("The time zone: {0}",
If(tz.IsDaylightSavingTime(dat),
tz.DaylightName, tz.StandardName))
Console.WriteLine()
Console.Write("Press <Enter> to exit... ")
Do While Console.ReadKey(True).Key <> ConsoleKey.Enter
Loop
End Sub
End Module
' The example displays the following output:
' The time: 11/11/2015 at 4:02 PM
' The time zone: Pacific Standard Time
Aşağıdaki örnek, ReadKey(Boolean) Bu anahtarı konsola yankılandırmadan bir kullanıcı tarafından basılan anahtarla ilgili bilgileri göstermek için yöntemini kullanır.The following example uses the ReadKey(Boolean) method to display information about the key pressed by a user without echoing that key to the console.
using namespace System;
void main()
{
ConsoleKeyInfo cki;
// Prevent example from ending if CTL+C is pressed.
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(true);
Console::Write("You pressed ");
if ((cki.Modifiers & ConsoleModifiers::Alt) != ConsoleModifiers()) Console::Write("ALT+");
if ((cki.Modifiers & ConsoleModifiers::Shift) != ConsoleModifiers()) Console::Write("SHIFT+");
if ((cki.Modifiers & ConsoleModifiers::Control) != ConsoleModifiers()) Console::Write("CTL+");
Console::WriteLine("{0} (character '{1}')", cki.Key, cki.KeyChar);
} while (cki.Key != ConsoleKey::Escape);
}
// This example displays output similar to the following:
// Press any combination of CTL, ALT, and SHIFT, and a console key.
// Press the Escape (Esc) key to quit:
//
// You pressed CTL+A (character '☺')
// You pressed C (character 'c')
// You pressed CTL+C (character '♥')
// You pressed K (character 'k')
// You pressed ALT+I (character 'i')
// You pressed ALT+U (character 'u')
// You pressed ALT+SHIFT+H (character 'H')
// You pressed Escape (character '←')
using System;
class Example
{
public static void Main()
{
ConsoleKeyInfo cki;
// Prevent example from ending if CTL+C is pressed.
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(true);
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("{0} (character '{1}')", cki.Key, cki.KeyChar);
} while (cki.Key != ConsoleKey.Escape);
}
}
// This example displays output similar to the following:
// Press any combination of CTL, ALT, and SHIFT, and a console key.
// Press the Escape (Esc) key to quit:
//
// You pressed CTL+A (character '☺')
// You pressed C (character 'c')
// You pressed CTL+C (character '♥')
// You pressed K (character 'k')
// You pressed ALT+I (character 'i')
// You pressed ALT+U (character 'u')
// You pressed ALT+SHIFT+H (character 'H')
// You pressed Escape (character '←')
Class Example
Public Shared Sub Main()
Dim cki As ConsoleKeyInfo
' Prevent example from ending if CTL+C is pressed.
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: " + vbCrLf)
Do
cki = Console.ReadKey(True)
Console.Write("You pressed ")
If (cki.Modifiers And ConsoleModifiers.Alt) <> 0 Then Console.Write("ALT+")
If (cki.Modifiers And ConsoleModifiers.Shift) <> 0 Then Console.Write("SHIFT+")
If (cki.Modifiers And ConsoleModifiers.Control) <> 0 Then Console.Write("CTL+")
Console.WriteLine("{0} (character '{1}')", cki.Key, cki.KeyChar)
Loop While cki.Key <> ConsoleKey.Escape
End Sub
End Class
' This example displays output similar to the following:
' Press any combination of CTL, ALT, and SHIFT, and a console key.
' Press the Escape (Esc) key to quit:
'
' You pressed CTL+A (character '☺')
' You pressed C (character 'c')
' You pressed CTL+C (character '♥')
' You pressed K (character 'k')
' You pressed ALT+I (character 'i')
' You pressed ALT+U (character 'u')
' You pressed ALT+SHIFT+H (character 'H')
' You pressed Escape (character '←')
Açıklamalar
ReadKeyYöntemi, ReadKey bir karakter veya işlev tuşuna basılana kadar yöntemi veren iş parçacığında blokları bekler.The ReadKey method waits, that is, blocks on the thread issuing the ReadKey method, until a character or function key is pressed. Bir ya da daha fazla alt, CTRL ya da SHIFT değiştirici tuşu ile bir karakter veya işlev tuşu birlikte bir tuşa basılabilir.A character or function key can be pressed in combination with one or more Alt, Ctrl, or Shift modifier keys. Ancak, bir değiştirici tuşa tek tek basmak ReadKey metodun dönüşmesine neden olmaz.However, pressing a modifier key by itself will not cause the ReadKey method to return.
interceptParametresi ise true , basılan anahtar ele alınıp konsol penceresinde gösterilmez; Aksi takdirde, basılan anahtar görüntülenir.If the intercept parameter is true, the pressed key is intercepted and not displayed in the console window; otherwise, the pressed key is displayed.
Uygulamanıza bağlı olarak, ReadKey yöntemini özelliğiyle birlikte kullanmak isteyebilirsiniz KeyAvailable .Depending on your application, you might want to use the ReadKey method in conjunction with the KeyAvailable property.
ReadKeyStandart giriş, yöntemiyle bir dosyaya yönlendirilse bile, yöntem klavyeden okur SetIn .The ReadKey method reads from the keyboard even if the standard input is redirected to a file with the SetIn method.