Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / ConsoleKeyInfo.cs / 1 / ConsoleKeyInfo.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================================== ** ** Class: ConsoleKeyInfo ** ** ** Purpose: This value type represents a single key press, with modifier keys ** like Alt, Control, and Shift. ** ** =============================================================================*/ namespace System { [Serializable] public struct ConsoleKeyInfo { private char _keyChar; private ConsoleKey _key; private ConsoleModifiers _mods; public ConsoleKeyInfo(char keyChar, ConsoleKey key, bool shift, bool alt, bool control) { // Limit ConsoleKey values to 0 to 255, but don't check whether the // key is a valid value in our ConsoleKey enum. There are a few // values in that enum that we didn't define, and reserved keys // that might start showing up on keyboards in a few years. if (((int)key) < 0 || ((int)key) > 255) throw new ArgumentOutOfRangeException("key", Environment.GetResourceString("ArgumentOutOfRange_ConsoleKey")); _keyChar = keyChar; _key = key; _mods = 0; if (shift) _mods |= ConsoleModifiers.Shift; if (alt) _mods |= ConsoleModifiers.Alt; if (control) _mods |= ConsoleModifiers.Control; } public char KeyChar { get { return _keyChar; } } public ConsoleKey Key { get { return _key; } } public ConsoleModifiers Modifiers { get { return _mods; } } public override bool Equals(Object value) { if (value is ConsoleKeyInfo) return Equals((ConsoleKeyInfo)value); else return false; } public bool Equals(ConsoleKeyInfo obj) { return obj._keyChar == _keyChar && obj._key == _key && obj._mods == _mods; } public static bool operator ==(ConsoleKeyInfo a, ConsoleKeyInfo b) { return a.Equals(b); } public static bool operator !=(ConsoleKeyInfo a, ConsoleKeyInfo b) { return !(a == b); } public override int GetHashCode() { return (int)_keyChar | (int) _mods; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================================== ** ** Class: ConsoleKeyInfo ** ** ** Purpose: This value type represents a single key press, with modifier keys ** like Alt, Control, and Shift. ** ** =============================================================================*/ namespace System { [Serializable] public struct ConsoleKeyInfo { private char _keyChar; private ConsoleKey _key; private ConsoleModifiers _mods; public ConsoleKeyInfo(char keyChar, ConsoleKey key, bool shift, bool alt, bool control) { // Limit ConsoleKey values to 0 to 255, but don't check whether the // key is a valid value in our ConsoleKey enum. There are a few // values in that enum that we didn't define, and reserved keys // that might start showing up on keyboards in a few years. if (((int)key) < 0 || ((int)key) > 255) throw new ArgumentOutOfRangeException("key", Environment.GetResourceString("ArgumentOutOfRange_ConsoleKey")); _keyChar = keyChar; _key = key; _mods = 0; if (shift) _mods |= ConsoleModifiers.Shift; if (alt) _mods |= ConsoleModifiers.Alt; if (control) _mods |= ConsoleModifiers.Control; } public char KeyChar { get { return _keyChar; } } public ConsoleKey Key { get { return _key; } } public ConsoleModifiers Modifiers { get { return _mods; } } public override bool Equals(Object value) { if (value is ConsoleKeyInfo) return Equals((ConsoleKeyInfo)value); else return false; } public bool Equals(ConsoleKeyInfo obj) { return obj._keyChar == _keyChar && obj._key == _key && obj._mods == _mods; } public static bool operator ==(ConsoleKeyInfo a, ConsoleKeyInfo b) { return a.Equals(b); } public static bool operator !=(ConsoleKeyInfo a, ConsoleKeyInfo b) { return !(a == b); } public override int GetHashCode() { return (int)_keyChar | (int) _mods; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Overlapped.cs
- FontStyles.cs
- RuntimeConfigLKG.cs
- OutOfMemoryException.cs
- Error.cs
- Trace.cs
- SequenceDesigner.cs
- AuthenticodeSignatureInformation.cs
- AmbientValueAttribute.cs
- FixedSOMTableCell.cs
- BaseCAMarshaler.cs
- SchemaHelper.cs
- ReadOnlyDictionary.cs
- ListViewItem.cs
- FieldNameLookup.cs
- SimpleFieldTemplateUserControl.cs
- versioninfo.cs
- ImmutableObjectAttribute.cs
- BatchWriter.cs
- StreamUpgradeProvider.cs
- HtmlGenericControl.cs
- NumberSubstitution.cs
- XPathParser.cs
- BeginEvent.cs
- ListViewItem.cs
- ActivityTypeDesigner.xaml.cs
- Permission.cs
- SafeReversePInvokeHandle.cs
- MimeObjectFactory.cs
- StorageMappingItemLoader.cs
- CroppedBitmap.cs
- DynamicValidator.cs
- RoleBoolean.cs
- CategoryGridEntry.cs
- XmlSchemaRedefine.cs
- ThemeDirectoryCompiler.cs
- SecurityResources.cs
- DataGridViewDesigner.cs
- CodeFieldReferenceExpression.cs
- IconConverter.cs
- X509CertificateValidationMode.cs
- DataTransferEventArgs.cs
- PageStatePersister.cs
- AmbientLight.cs
- Registry.cs
- Highlights.cs
- DataGridRowAutomationPeer.cs
- hwndwrapper.cs
- DataGridViewCellStyleEditor.cs
- NeutralResourcesLanguageAttribute.cs
- RectangleConverter.cs
- DBCommand.cs
- XmlSchemaChoice.cs
- _StreamFramer.cs
- ContravarianceAdapter.cs
- CodeArrayCreateExpression.cs
- MenuTracker.cs
- WrappedReader.cs
- OutputCacheProviderCollection.cs
- TimeZoneInfo.cs
- parserscommon.cs
- DebuggerAttributes.cs
- EditableRegion.cs
- MdiWindowListItemConverter.cs
- SkipStoryboardToFill.cs
- QilGeneratorEnv.cs
- CodeStatementCollection.cs
- XmlDocumentViewSchema.cs
- ReflectPropertyDescriptor.cs
- ReversePositionQuery.cs
- ComponentResourceManager.cs
- View.cs
- PathData.cs
- TableRowCollection.cs
- COSERVERINFO.cs
- ClientUtils.cs
- AdapterDictionary.cs
- Timeline.cs
- SafeNativeMethodsCLR.cs
- ExtensibleClassFactory.cs
- JournalEntryStack.cs
- TextContainer.cs
- SHA384Managed.cs
- Logging.cs
- EndpointIdentity.cs
- DisplayNameAttribute.cs
- sqlstateclientmanager.cs
- ButtonChrome.cs
- UIElementParaClient.cs
- AdornedElementPlaceholder.cs
- AssertFilter.cs
- PermissionRequestEvidence.cs
- StorageEntityContainerMapping.cs
- DataSource.cs
- SafeTimerHandle.cs
- SqlLiftWhereClauses.cs
- DbConnectionHelper.cs
- WebPartsPersonalization.cs
- DoubleLinkListEnumerator.cs
- SafeLibraryHandle.cs