The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.
ConsoleKeyInfo::GetHashCode Method ()
.NET Framework (current version)
Returns the hash code for the current ConsoleKeyInfo object.
Assembly: mscorlib (in mscorlib.dll)
The value returned by the GetHashCode method is not suitable for distinguishing one ConsoleKeyInfo object from another. If your application needs a unique hash code, override the GetHashCode method with your own method.
The following example demonstrates the GetHashCode method.
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. */
.NET Framework
Available since 2.0
Available since 2.0
Show: