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
- ApplicationSecurityManager.cs
- Int64.cs
- MenuAutomationPeer.cs
- PageClientProxyGenerator.cs
- EncodingNLS.cs
- ByteStorage.cs
- ParserOptions.cs
- Bits.cs
- _Semaphore.cs
- CompilerGlobalScopeAttribute.cs
- DrawingImage.cs
- XPathNavigatorKeyComparer.cs
- HttpStreamMessage.cs
- JsonEnumDataContract.cs
- TablePattern.cs
- FramingChannels.cs
- FixedSOMTable.cs
- WindowsFormsSynchronizationContext.cs
- PageCache.cs
- ColumnClickEvent.cs
- Types.cs
- ManualResetEventSlim.cs
- XmlHierarchyData.cs
- BufferedGraphicsManager.cs
- PrivateFontCollection.cs
- HTTPNotFoundHandler.cs
- NetworkInformationException.cs
- InlinedAggregationOperatorEnumerator.cs
- DelimitedListTraceListener.cs
- SevenBitStream.cs
- CodeTypeDeclarationCollection.cs
- InvalidPrinterException.cs
- ErrorProvider.cs
- FormViewPageEventArgs.cs
- ThicknessKeyFrameCollection.cs
- ParenthesizePropertyNameAttribute.cs
- KernelTypeValidation.cs
- DbConnectionPoolOptions.cs
- DoubleLink.cs
- MetadataCacheItem.cs
- ServiceDiscoveryElement.cs
- AssemblyBuilderData.cs
- MenuItemBindingCollection.cs
- FormattedText.cs
- RequestCacheEntry.cs
- CheckPair.cs
- ReachIDocumentPaginatorSerializer.cs
- Base64WriteStateInfo.cs
- XmlSchemaObjectCollection.cs
- AspCompat.cs
- dsa.cs
- RegexInterpreter.cs
- MetadataItemSerializer.cs
- NetworkInformationException.cs
- RecommendedAsConfigurableAttribute.cs
- Documentation.cs
- Soap.cs
- EditorServiceContext.cs
- CompositeControl.cs
- BaseInfoTable.cs
- AnimationTimeline.cs
- EnumDataContract.cs
- SqlDataSourceEnumerator.cs
- OleDbWrapper.cs
- StringDictionaryCodeDomSerializer.cs
- Keyboard.cs
- SortFieldComparer.cs
- OverflowException.cs
- Pointer.cs
- DataGridParentRows.cs
- errorpatternmatcher.cs
- WCFModelStrings.Designer.cs
- ObjectItemCachedAssemblyLoader.cs
- ExchangeUtilities.cs
- Pen.cs
- SoapAttributes.cs
- Parsers.cs
- OdbcTransaction.cs
- ExpressionBuilder.cs
- RadioButton.cs
- HtmlInputImage.cs
- XmlElement.cs
- CodeTypeReferenceExpression.cs
- XamlBrushSerializer.cs
- PropertySourceInfo.cs
- KnownBoxes.cs
- COMException.cs
- CodeDOMProvider.cs
- ListItemViewControl.cs
- RecognizedPhrase.cs
- SiteMapNode.cs
- RegexGroup.cs
- IPAddress.cs
- ConstraintCollection.cs
- X509UI.cs
- UnknownExceptionActionHelper.cs
- ImageAttributes.cs
- VirtualDirectoryMapping.cs
- CmsUtils.cs
- HelpProvider.cs