Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / ConsoleKeyInfo.cs / 1305376 / ConsoleKeyInfo.cs
using System.Diagnostics.Contracts; // ==++== // // 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")); Contract.EndContractBlock(); _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. using System.Diagnostics.Contracts; // ==++== // // 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")); Contract.EndContractBlock(); _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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ConfigXmlDocument.cs
- IImplicitResourceProvider.cs
- TraceHandlerErrorFormatter.cs
- OleDbConnection.cs
- BypassElementCollection.cs
- StateFinalizationActivity.cs
- ToolStripRendererSwitcher.cs
- WebSysDefaultValueAttribute.cs
- MetadataWorkspace.cs
- DefaultCompensation.cs
- RenderData.cs
- ToolBarButton.cs
- Padding.cs
- ObjectQueryState.cs
- DesignerDataSchemaClass.cs
- SizeAnimationBase.cs
- OutputCacheProfile.cs
- FormViewPagerRow.cs
- Binding.cs
- ApplicationServicesHostFactory.cs
- DocumentGridContextMenu.cs
- HwndTarget.cs
- RawKeyboardInputReport.cs
- TcpTransportElement.cs
- TextMarkerSource.cs
- TextHidden.cs
- ComponentSerializationService.cs
- MailMessageEventArgs.cs
- SiteMembershipCondition.cs
- AddInStore.cs
- DesignerDataConnection.cs
- CssClassPropertyAttribute.cs
- CodeAssignStatement.cs
- PersonalizationProviderHelper.cs
- ButtonChrome.cs
- ModuleElement.cs
- ValueHandle.cs
- OdbcConnectionOpen.cs
- SQLResource.cs
- MetadataItemEmitter.cs
- CharUnicodeInfo.cs
- PropertyGridDesigner.cs
- OperatingSystem.cs
- InputMethodStateTypeInfo.cs
- SecurityContextSecurityToken.cs
- ObjectQueryExecutionPlan.cs
- MobileUserControlDesigner.cs
- ImmutableCollection.cs
- ToolStripEditorManager.cs
- PropertyManager.cs
- MetadataWorkspace.cs
- ExpandedProjectionNode.cs
- ServiceOperationDetailViewControl.cs
- FilteredReadOnlyMetadataCollection.cs
- XmlSchemaSimpleContentExtension.cs
- DecoderBestFitFallback.cs
- RuntimeDelegateArgument.cs
- COM2AboutBoxPropertyDescriptor.cs
- NotSupportedException.cs
- ToolStripScrollButton.cs
- WebResourceUtil.cs
- RectIndependentAnimationStorage.cs
- RSACryptoServiceProvider.cs
- LinqDataSourceContextEventArgs.cs
- ComboBoxRenderer.cs
- ListItemParagraph.cs
- EditBehavior.cs
- AxHost.cs
- ToolStripPanel.cs
- SettingsPropertyCollection.cs
- SemaphoreSecurity.cs
- Privilege.cs
- ViewBox.cs
- SplineKeyFrames.cs
- AsnEncodedData.cs
- TableLayout.cs
- Number.cs
- PhonemeEventArgs.cs
- HtmlControlPersistable.cs
- AddInServer.cs
- FormViewDeleteEventArgs.cs
- ActiveXHelper.cs
- WindowsAuthenticationModule.cs
- SqlVersion.cs
- LayoutSettings.cs
- TemplateBindingExtension.cs
- GeometryDrawing.cs
- ScrollViewer.cs
- WebServiceClientProxyGenerator.cs
- XPathEmptyIterator.cs
- StylusPointPropertyUnit.cs
- ConfigurationSection.cs
- NonValidatingSecurityTokenAuthenticator.cs
- ToolStripContainer.cs
- ObjectPersistData.cs
- FixedDSBuilder.cs
- TableLayoutStyle.cs
- StatusBarItemAutomationPeer.cs
- ObjectAnimationBase.cs
- SafeMILHandle.cs