Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / ConsoleKeyInfo.cs / 1 / ConsoleKeyInfo.cs
// ==++== // // 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")); _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; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlChildEnumerator.cs
- PrimitiveType.cs
- SamlAssertion.cs
- UnsafeNativeMethods.cs
- TextPattern.cs
- SelectManyQueryOperator.cs
- WebPartVerbCollection.cs
- XmlSchemaValidator.cs
- StylusPlugin.cs
- Package.cs
- Convert.cs
- DesignBindingPicker.cs
- XmlDomTextWriter.cs
- MetaForeignKeyColumn.cs
- XmlChildNodes.cs
- XmlLoader.cs
- SpStreamWrapper.cs
- AssemblyAttributes.cs
- QilTypeChecker.cs
- Socket.cs
- StringBlob.cs
- ImageMetadata.cs
- CircleHotSpot.cs
- DbConnectionPoolIdentity.cs
- WebPartEditVerb.cs
- ClientSettings.cs
- MsmqChannelListenerBase.cs
- FlowPosition.cs
- ImageField.cs
- StandardOleMarshalObject.cs
- SHA256Managed.cs
- TraceRecord.cs
- BridgeDataReader.cs
- VisualStyleInformation.cs
- FontSource.cs
- ExpressionBuilderContext.cs
- SchemaImporterExtensionElementCollection.cs
- BufferedResponseStream.cs
- CodeTypeParameterCollection.cs
- SystemFonts.cs
- UpdateException.cs
- Unit.cs
- TagPrefixCollection.cs
- FileDialogCustomPlace.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- HMACSHA1.cs
- MLangCodePageEncoding.cs
- AccessViolationException.cs
- ReadOnlyDataSourceView.cs
- EventData.cs
- DataListItemEventArgs.cs
- TypeViewSchema.cs
- StylusEditingBehavior.cs
- _AutoWebProxyScriptEngine.cs
- WindowsProgressbar.cs
- PrintControllerWithStatusDialog.cs
- WebPartMenuStyle.cs
- Symbol.cs
- LinqMaximalSubtreeNominator.cs
- RegexStringValidator.cs
- ColorTranslator.cs
- ManagedFilter.cs
- AnimationLayer.cs
- ContextDataSource.cs
- TemplateBamlTreeBuilder.cs
- Int32Rect.cs
- CssClassPropertyAttribute.cs
- DataGridRelationshipRow.cs
- SystemUdpStatistics.cs
- Memoizer.cs
- PropertyEntry.cs
- RelationshipEndMember.cs
- MenuItemStyle.cs
- RealizationContext.cs
- TransformPatternIdentifiers.cs
- KeyEventArgs.cs
- InputScopeManager.cs
- RelationshipNavigation.cs
- MultipleViewPattern.cs
- glyphs.cs
- ClientTarget.cs
- NamespaceInfo.cs
- TextClipboardData.cs
- ObjectStateFormatter.cs
- RoleManagerEventArgs.cs
- ToolStripContentPanel.cs
- StaticResourceExtension.cs
- Utilities.cs
- SafeNativeMethods.cs
- Fx.cs
- HelpKeywordAttribute.cs
- GenericRootAutomationPeer.cs
- DocumentViewerConstants.cs
- ListViewSelectEventArgs.cs
- WebBrowserNavigatingEventHandler.cs
- ResXBuildProvider.cs
- List.cs
- MultiViewDesigner.cs
- Task.cs
- JumpList.cs