Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SafeHandle.cs
- IndentTextWriter.cs
- HMACSHA384.cs
- _SecureChannel.cs
- MergeFilterQuery.cs
- TextEditorLists.cs
- ServiceOperationWrapper.cs
- UrlMappingsSection.cs
- PolyBezierSegment.cs
- IIS7UserPrincipal.cs
- RequestCacheEntry.cs
- ECDiffieHellman.cs
- TableItemProviderWrapper.cs
- QueryOperatorEnumerator.cs
- UnmanagedMarshal.cs
- JavaScriptSerializer.cs
- DSASignatureDeformatter.cs
- SingleSelectRootGridEntry.cs
- EmptyEnumerator.cs
- RepeatButtonAutomationPeer.cs
- PropertyGridView.cs
- StatusBarItem.cs
- Int32KeyFrameCollection.cs
- SelectionListComponentEditor.cs
- PauseStoryboard.cs
- SimpleBitVector32.cs
- XmlReflectionImporter.cs
- LogWriteRestartAreaAsyncResult.cs
- PageThemeBuildProvider.cs
- Rule.cs
- WebPartManager.cs
- TdsParserHelperClasses.cs
- TrackingLocationCollection.cs
- ChangesetResponse.cs
- ReadOnlyHierarchicalDataSource.cs
- _ScatterGatherBuffers.cs
- DataRow.cs
- ConfigurationStrings.cs
- WindowsComboBox.cs
- ImageListDesigner.cs
- Point3D.cs
- Light.cs
- ErrorStyle.cs
- TableAdapterManagerMethodGenerator.cs
- FixedTextBuilder.cs
- PropertyGeneratedEventArgs.cs
- Assert.cs
- RepeaterItemEventArgs.cs
- BulletedList.cs
- AppDomainAttributes.cs
- ParallelRangeManager.cs
- ClientScriptManager.cs
- PolyBezierSegment.cs
- DoubleCollectionConverter.cs
- SymLanguageType.cs
- EncryptedReference.cs
- StylusPlugin.cs
- MethodCallTranslator.cs
- _UncName.cs
- HtmlInputButton.cs
- EncryptedKey.cs
- BinaryConverter.cs
- PolyBezierSegment.cs
- XsltSettings.cs
- Config.cs
- AttachedPropertyBrowsableAttribute.cs
- TcpClientCredentialType.cs
- ThemeDirectoryCompiler.cs
- ChannelSettingsElement.cs
- ObjectTag.cs
- XmlNamespaceManager.cs
- UnsafeNativeMethods.cs
- ToolStripButton.cs
- TcpStreams.cs
- InfoCardUIAgent.cs
- DynamicAttribute.cs
- ObjectPersistData.cs
- DiscoveryClientProtocol.cs
- DataGridViewComboBoxColumn.cs
- SimpleBitVector32.cs
- Int64Converter.cs
- TreeView.cs
- ContactManager.cs
- AutomationIdentifier.cs
- DataObjectMethodAttribute.cs
- FileLogRecordStream.cs
- StatusBar.cs
- SynchronizedDispatch.cs
- AsnEncodedData.cs
- HtmlFormParameterWriter.cs
- CryptoApi.cs
- DataGridViewImageColumn.cs
- BitmapScalingModeValidation.cs
- Panel.cs
- EditingScope.cs
- EventLogPermissionEntry.cs
- CryptoApi.cs
- ServiceNameElementCollection.cs
- RegexRunner.cs
- SecurityMessageProperty.cs