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
- DashStyle.cs
- WebPartCancelEventArgs.cs
- VectorConverter.cs
- FileChangesMonitor.cs
- CTreeGenerator.cs
- Vector3dCollection.cs
- RayMeshGeometry3DHitTestResult.cs
- TdsValueSetter.cs
- EventLogLink.cs
- DecimalConstantAttribute.cs
- Item.cs
- ReferencedCollectionType.cs
- Tile.cs
- ipaddressinformationcollection.cs
- Freezable.cs
- AutomationPropertyInfo.cs
- EncodingInfo.cs
- InkPresenterAutomationPeer.cs
- SuppressMergeCheckAttribute.cs
- MarkupObject.cs
- _FtpDataStream.cs
- SamlAction.cs
- ToolboxComponentsCreatedEventArgs.cs
- ResourceKey.cs
- PaginationProgressEventArgs.cs
- X509ChainPolicy.cs
- CompilerCollection.cs
- DynamicMethod.cs
- XmlCustomFormatter.cs
- Matrix3DConverter.cs
- PersianCalendar.cs
- BrowserCapabilitiesFactoryBase.cs
- DtdParser.cs
- TypeLoadException.cs
- CompilationUtil.cs
- VisualBasic.cs
- ValidatorCompatibilityHelper.cs
- SelectedDatesCollection.cs
- RNGCryptoServiceProvider.cs
- Image.cs
- AmbientLight.cs
- InstancePersistenceException.cs
- ManifestResourceInfo.cs
- CodeTryCatchFinallyStatement.cs
- CustomCredentialPolicy.cs
- ControlCollection.cs
- XAMLParseException.cs
- CompensableActivity.cs
- ComNativeDescriptor.cs
- HwndTarget.cs
- RTTrackingProfile.cs
- UiaCoreProviderApi.cs
- ThreadStaticAttribute.cs
- SqlServices.cs
- MultipartContentParser.cs
- PenThreadWorker.cs
- RefreshPropertiesAttribute.cs
- SecuritySessionClientSettings.cs
- NavigationEventArgs.cs
- SqlInternalConnectionTds.cs
- ADMembershipUser.cs
- TabPanel.cs
- SimpleParser.cs
- KeyGestureConverter.cs
- DragDeltaEventArgs.cs
- Metafile.cs
- ServiceContractListItem.cs
- precedingquery.cs
- NameTable.cs
- ProtectedConfigurationSection.cs
- ContentOperations.cs
- DateTimeFormatInfo.cs
- UserControlAutomationPeer.cs
- SynthesizerStateChangedEventArgs.cs
- Grant.cs
- WeakEventTable.cs
- TcpStreams.cs
- UnicodeEncoding.cs
- TypedAsyncResult.cs
- XmlElementList.cs
- SettingsAttributeDictionary.cs
- HwndKeyboardInputProvider.cs
- ConvertersCollection.cs
- RecognizerBase.cs
- BufferAllocator.cs
- WinEventWrap.cs
- EventSchemaTraceListener.cs
- xml.cs
- IItemContainerGenerator.cs
- HttpCachePolicy.cs
- SchemaEntity.cs
- DataGridViewButtonColumn.cs
- Rule.cs
- GeometryModel3D.cs
- ImpersonationContext.cs
- KeyManager.cs
- BufferBuilder.cs
- OracleInternalConnection.cs
- CodeMemberProperty.cs
- PieceDirectory.cs