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
- MexTcpBindingCollectionElement.cs
- CollaborationHelperFunctions.cs
- BypassElementCollection.cs
- DataGridViewCellConverter.cs
- FieldCollectionEditor.cs
- ISessionStateStore.cs
- UInt32.cs
- Debug.cs
- Compensate.cs
- MailSettingsSection.cs
- EntityContainerEmitter.cs
- ComponentCollection.cs
- PointIndependentAnimationStorage.cs
- GridViewEditEventArgs.cs
- StateItem.cs
- DynamicPropertyHolder.cs
- XamlReader.cs
- TdsParserSessionPool.cs
- TextPointerBase.cs
- XsdDataContractImporter.cs
- XmlSchemaSequence.cs
- Component.cs
- ReadOnlyDictionary.cs
- DbParameterHelper.cs
- AuthenticationSection.cs
- RulePatternOps.cs
- OracleBinary.cs
- WindowsMenu.cs
- MetabaseServerConfig.cs
- SoapRpcServiceAttribute.cs
- CacheEntry.cs
- BasicDesignerLoader.cs
- UnsafeNativeMethods.cs
- Util.cs
- DataBindingHandlerAttribute.cs
- TransactionContextValidator.cs
- Int16AnimationUsingKeyFrames.cs
- XmlILIndex.cs
- TabItemAutomationPeer.cs
- EmptyQuery.cs
- XmlnsDictionary.cs
- LocalizableResourceBuilder.cs
- GatewayIPAddressInformationCollection.cs
- NullReferenceException.cs
- ActionFrame.cs
- JournalEntry.cs
- CodeAssignStatement.cs
- DataRelation.cs
- ColorConverter.cs
- WebPartConnectionsCancelVerb.cs
- ColumnWidthChangedEvent.cs
- BitmapScalingModeValidation.cs
- XamlRtfConverter.cs
- _DomainName.cs
- FormViewPagerRow.cs
- X509UI.cs
- RegexReplacement.cs
- FileChangesMonitor.cs
- SQLByte.cs
- DeferrableContentConverter.cs
- EntitySqlQueryBuilder.cs
- EndpointConfigContainer.cs
- COM2Properties.cs
- Base64Stream.cs
- PrivilegeNotHeldException.cs
- TypedTableBaseExtensions.cs
- SimpleMailWebEventProvider.cs
- coordinatorfactory.cs
- DispatcherObject.cs
- EntityDataSourceStatementEditor.cs
- OdbcInfoMessageEvent.cs
- CodeThrowExceptionStatement.cs
- SamlEvidence.cs
- EncryptedKey.cs
- Tile.cs
- ToolBarButtonDesigner.cs
- DashStyle.cs
- CharConverter.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- UInt64Converter.cs
- SecureConversationVersion.cs
- InfoCardProofToken.cs
- XmlSchemaImport.cs
- Slider.cs
- UInt16.cs
- NavigationExpr.cs
- VariableExpressionConverter.cs
- CheckBox.cs
- CounterCreationDataCollection.cs
- StaticFileHandler.cs
- ToolStripSplitButton.cs
- DataSysAttribute.cs
- BehaviorEditorPart.cs
- MeshGeometry3D.cs
- ValidationSummary.cs
- DataSourceControl.cs
- ObjectSecurity.cs
- WebScriptEnablingBehavior.cs
- RecognizedPhrase.cs
- Utils.cs