ConsoleKeyInfo.GetHashCode Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Geçerli ConsoleKeyInfo nesnenin karma kodunu döndürür.
public:
override int GetHashCode();
public override int GetHashCode ();
override this.GetHashCode : unit -> int
Public Overrides Function GetHashCode () As Integer
Döndürülenler
32-bit imzalı tamsayı karma kodu.
Örnekler
Aşağıdaki örnekte yöntemi gösterilmektedir GetHashCode .
using namespace System;
using namespace System::Text;
String^ KeyCombination(ConsoleKeyInfo sourceCki);
void main()
{
String^ k1 = "\nEnter a key ......... ";
String^ key1 = "";
String^ hashCodeFmt = "The hash code for the {0} key is {1}.";
String^ prompt = "Press the escape key (ESC) to quit, " +
"or any other key to continue.";
ConsoleKeyInfo cki1;
int hashCode = 0;
// The Console.TreatControlCAsInput property prevents this example from
// ending if you press CTL+C, however all other operating system keys and
// shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect.
//
Console::TreatControlCAsInput = true;
// Request that the user enter two key presses. A key press and any
// combination shift, CTRL, and ALT modifier keys is permitted.
do
{
Console::Write(k1);
cki1 = Console::ReadKey(false);
Console::WriteLine();
key1 = KeyCombination(cki1);
hashCode = cki1.GetHashCode();
Console::WriteLine(hashCodeFmt, key1, hashCode);
Console::WriteLine(prompt);
cki1 = Console::ReadKey(true);
} while (cki1.Key != ConsoleKey::Escape);
// Note: This example requires the Escape (Esc) key.
}
// The KeyCombination() method creates a string that specifies what
// key and what combination of shift, CTRL, and ALT modifier keys
// were pressed simultaneously.
static String^ KeyCombination(ConsoleKeyInfo sourceCki)
{
StringBuilder^ sb = gcnew StringBuilder();
sb->Length = 0;
String^ keyCombo;
if (sourceCki.Modifiers != (ConsoleModifiers) 0)
{
if ((sourceCki.Modifiers & ConsoleModifiers::Alt) != (ConsoleModifiers) 0)
sb->Append("ALT+");
if ((sourceCki.Modifiers & ConsoleModifiers::Shift) != (ConsoleModifiers) 0)
sb->Append("SHIFT+");
if ((sourceCki.Modifiers & ConsoleModifiers::Control) != (ConsoleModifiers) 0)
sb->Append("CTL+");
}
sb->Append(sourceCki.Key.ToString());
keyCombo = sb->ToString();
return keyCombo;
}
/*
This example produces results similar to the following output:
Enter a key ......... a
The hash code for the A key is 97.
Press the escape key (ESC) to quit, or any other key to continue.
Enter a key ......... S
The hash code for the SHIFT+S key is 83.
Press the escape key (ESC) to quit, or any other key to continue.
Enter a key .........
The hash code for the ALT+SHIFT+CTL+J key is 7.
Press the escape key (ESC) to quit, or any other key to continue.
*/
// This example demonstrates the ConsoleKeyInfo.GetHashCode() method.
using System;
using System.Text;
class Sample
{
public static void Main()
{
string k1 = "\nEnter a key ......... ";
string key1 = "";
string hashCodeFmt = "The hash code for the {0} key is {1}.";
string prompt = "Press the escape key (ESC) to quit, " +
"or any other key to continue.";
ConsoleKeyInfo cki1;
int hashCode = 0;
//
// The Console.TreatControlCAsInput property prevents this example from
// ending if you press CTL+C, however all other operating system keys and
// shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect.
//
Console.TreatControlCAsInput = true;
// Request that the user enter two key presses. A key press and any
// combination shift, CTRL, and ALT modifier keys is permitted.
do
{
Console.Write(k1);
cki1 = Console.ReadKey(false);
Console.WriteLine();
//
key1 = KeyCombination(cki1);
hashCode = cki1.GetHashCode();
Console.WriteLine(hashCodeFmt, key1, hashCode);
//
Console.WriteLine(prompt);
cki1 = Console.ReadKey(true);
} while (cki1.Key != ConsoleKey.Escape);
// Note: This example requires the Escape (Esc) key.
}
// The KeyCombination() method creates a string that specifies what
// key and what combination of shift, CTRL, and ALT modifier keys
// were pressed simultaneously.
protected static string KeyCombination(ConsoleKeyInfo sourceCki)
{
StringBuilder sb = new StringBuilder();
sb.Length = 0;
string keyCombo;
if (sourceCki.Modifiers != 0)
{
if ((sourceCki.Modifiers & ConsoleModifiers.Alt) != 0)
sb.Append("ALT+");
if ((sourceCki.Modifiers & ConsoleModifiers.Shift) != 0)
sb.Append("SHIFT+");
if ((sourceCki.Modifiers & ConsoleModifiers.Control) != 0)
sb.Append("CTL+");
}
sb.Append(sourceCki.Key.ToString());
keyCombo = sb.ToString();
return keyCombo;
}
}
/*
This example produces results similar to the following output:
Enter a key ......... a
The hash code for the A key is 97.
Press the escape key (ESC) to quit, or any other key to continue.
Enter a key ......... S
The hash code for the SHIFT+S key is 83.
Press the escape key (ESC) to quit, or any other key to continue.
Enter a key .........
The hash code for the ALT+SHIFT+CTL+J key is 7.
Press the escape key (ESC) to quit, or any other key to continue.
*/
// This example demonstrates the ConsoleKeyInfo.GetHashCode() method.
open System
open System.Text
// The keyCombination function creates a string that specifies what
// key and what combination of shift, CTRL, and ALT modifier keys
// were pressed simultaneously.
let keyCombination (sourceCki: ConsoleKeyInfo) =
let sb = StringBuilder()
sb.Length <- 0
if int sourceCki.Modifiers <> 0 then
if int (sourceCki.Modifiers &&& ConsoleModifiers.Alt) <> 0 then
sb.Append "ALT+" |> ignore
if int (sourceCki.Modifiers &&& ConsoleModifiers.Shift) <> 0 then
sb.Append "SHIFT+" |> ignore
if int (sourceCki.Modifiers &&& ConsoleModifiers.Control) <> 0 then
sb.Append "CTL+" |> ignore
sourceCki.Key
|> string
|> sb.Append
|> string
//
// The Console.TreatControlCAsInput property prevents this example from
// ending if you press CTL+C, however all other operating system keys and
// shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect.
//
Console.TreatControlCAsInput <- true
let mutable cki1 = Unchecked.defaultof<ConsoleKeyInfo>
// Request that the user enter two key presses. A key press and any
// combination shift, CTRL, and ALT modifier keys is permitted.
while cki1.Key <> ConsoleKey.Escape do
printf "\nEnter a key ......... "
cki1 <- Console.ReadKey false
printfn ""
let key1 = keyCombination cki1
let hashCode = cki1.GetHashCode()
printfn $"The hash code for the {key1} key is {hashCode}."
printfn "Press the escape key (ESC) to quit, or any other key to continue."
cki1 <- Console.ReadKey true
// Note: This example requires the Escape (Esc) key.
//
// This example produces results similar to the following output:
//
// Enter a key ......... a
// The hash code for the A key is 97.
// Press the escape key (ESC) to quit, or any other key to continue.
//
// Enter a key ......... S
// The hash code for the SHIFT+S key is 83.
// Press the escape key (ESC) to quit, or any other key to continue.
//
// Enter a key .........
// The hash code for the ALT+SHIFT+CTL+J key is 7.
// Press the escape key (ESC) to quit, or any other key to continue.
' This example demonstrates the ConsoleKeyInfo.GetHashCode() method.
Imports System.Text
Class Sample
Public Shared Sub Main()
Dim k1 As String = vbCrLf & "Enter a key ......... "
Dim key1 As String = ""
Dim hashCodeFmt As String = "The hash code for the {0} key is {1}."
Dim prompt As String = "Press the escape key (ESC) to quit, " & _
"or any other key to continue."
Dim cki1 As ConsoleKeyInfo
Dim hashCode As Integer = 0
'
' The Console.TreatControlCAsInput property prevents this example from
' ending if you press CTL+C, however all other operating system keys and
' shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect.
'
Console.TreatControlCAsInput = True
' Request that the user enter two key presses. A key press and any
' combination shift, CTRL, and ALT modifier keys is permitted.
Do
Console.Write(k1)
cki1 = Console.ReadKey(False)
Console.WriteLine()
'
key1 = KeyCombination(cki1)
hashCode = cki1.GetHashCode()
Console.WriteLine(hashCodeFmt, key1, hashCode)
'
Console.WriteLine(prompt)
cki1 = Console.ReadKey(True)
Loop While cki1.Key <> ConsoleKey.Escape
End Sub
' Note: This example requires the Escape (Esc) key.
' The KeyCombination() method creates a string that specifies what
' key and what combination of shift, CTRL, and ALT modifier keys
' were pressed simultaneously.
Protected Shared Function KeyCombination(ByVal sourceCki As ConsoleKeyInfo) As String
Dim sb As New StringBuilder()
sb.Length = 0
Dim keyCombo As String
If sourceCki.Modifiers <> 0 Then
If(sourceCki.Modifiers And ConsoleModifiers.Alt) <> 0 Then
sb.Append("ALT+")
End If
If(sourceCki.Modifiers And ConsoleModifiers.Shift) <> 0 Then
sb.Append("SHIFT+")
End If
If(sourceCki.Modifiers And ConsoleModifiers.Control) <> 0 Then
sb.Append("CTL+")
End If
End If
sb.Append(sourceCki.Key.ToString())
keyCombo = sb.ToString()
Return keyCombo
End Function 'KeyCombination
End Class
'
'This example produces results similar to the following output:
'
'Enter a key ......... a
'The hash code for the A key is 97.
'Press the escape key (ESC) to quit, or any other key to continue.
'
'Enter a key ......... S
'The hash code for the SHIFT+S key is 83.
'Press the escape key (ESC) to quit, or any other key to continue.
'
'Enter a key .........
'The hash code for the ALT+SHIFT+CTL+J key is 7.
'Press the escape key (ESC) to quit, or any other key to continue.
'
Açıklamalar
yöntemi tarafından GetHashCode döndürülen değer, bir nesneyi diğerinden ConsoleKeyInfo ayırmak için uygun değildir. Uygulamanızın benzersiz bir karma koduna ihtiyacı varsa, yöntemini kendi yönteminizle geçersiz kılın GetHashCode .
Şunlara uygulanır
GitHub'da bizimle işbirliği yapın
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.