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
- NativeMethods.cs
- HostExecutionContextManager.cs
- ServiceInfoCollection.cs
- CollectionTypeElement.cs
- TextureBrush.cs
- KeyBinding.cs
- XmlSchemaDatatype.cs
- UnsafeNativeMethods.cs
- itemelement.cs
- ActivityPreviewDesigner.cs
- XmlAnyElementAttributes.cs
- SimpleColumnProvider.cs
- PropertyToken.cs
- EntityDataSourceContextDisposingEventArgs.cs
- FormClosingEvent.cs
- RegexBoyerMoore.cs
- ExportOptions.cs
- NetNamedPipeBinding.cs
- X509ChainElement.cs
- WebPartConnectionCollection.cs
- CompoundFileDeflateTransform.cs
- SiteIdentityPermission.cs
- XmlExtensionFunction.cs
- GestureRecognizer.cs
- Material.cs
- XhtmlBasicPhoneCallAdapter.cs
- UnionExpr.cs
- AutomationEvent.cs
- ObjectNavigationPropertyMapping.cs
- ServiceParser.cs
- AutoResizedEvent.cs
- FullTrustAssembliesSection.cs
- RelatedPropertyManager.cs
- DataColumnPropertyDescriptor.cs
- TargetConverter.cs
- UrlMappingCollection.cs
- ListBindingConverter.cs
- MobileListItemCollection.cs
- WeakRefEnumerator.cs
- MediaScriptCommandRoutedEventArgs.cs
- MenuItemBindingCollection.cs
- QueueAccessMode.cs
- DoubleLinkListEnumerator.cs
- NetMsmqSecurity.cs
- BrowserDefinition.cs
- PaintEvent.cs
- HtmlAnchor.cs
- SafeWaitHandle.cs
- RC2CryptoServiceProvider.cs
- Triangle.cs
- PrimaryKeyTypeConverter.cs
- HuffModule.cs
- Point3DCollectionConverter.cs
- DmlSqlGenerator.cs
- PageAsyncTask.cs
- XmlArrayItemAttributes.cs
- ZoneLinkButton.cs
- HighContrastHelper.cs
- AssemblyCollection.cs
- UriSectionReader.cs
- ObjectTag.cs
- GPRECT.cs
- ExitEventArgs.cs
- StructuredType.cs
- DbProviderFactory.cs
- InputProcessorProfilesLoader.cs
- UpdateCommandGenerator.cs
- DocobjHost.cs
- ErrorProvider.cs
- HandlerBase.cs
- UIElementParagraph.cs
- SpeechAudioFormatInfo.cs
- HandleTable.cs
- MultiAsyncResult.cs
- FontStyle.cs
- HwndSource.cs
- TextTreeTextBlock.cs
- MailAddress.cs
- PointAnimationUsingKeyFrames.cs
- ExceptionHelpers.cs
- ChannelServices.cs
- AesCryptoServiceProvider.cs
- XsdDuration.cs
- HwndAppCommandInputProvider.cs
- HtmlTable.cs
- Control.cs
- ProcessThread.cs
- ConnectionPoint.cs
- _FtpDataStream.cs
- SimpleModelProvider.cs
- Image.cs
- BinaryOperationBinder.cs
- XamlInt32CollectionSerializer.cs
- ProfileGroupSettings.cs
- VersionedStreamOwner.cs
- Fonts.cs
- XmlHierarchicalEnumerable.cs
- VideoDrawing.cs
- ConfigsHelper.cs
- SqlHelper.cs