Code:
/ DotNET / DotNET / 8.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
- OracleColumn.cs
- AutomationProperty.cs
- NavigationProgressEventArgs.cs
- Icon.cs
- MessageDecoder.cs
- EntityDataSourceEntityTypeFilterItem.cs
- TdsParser.cs
- HtmlFormAdapter.cs
- SqlProcedureAttribute.cs
- FileInfo.cs
- TagPrefixAttribute.cs
- SystemResourceHost.cs
- CodeRegionDirective.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- RMPermissions.cs
- Gdiplus.cs
- Exceptions.cs
- AsymmetricKeyExchangeDeformatter.cs
- DrawListViewColumnHeaderEventArgs.cs
- FrameworkContentElement.cs
- SQLBytes.cs
- DataObjectSettingDataEventArgs.cs
- DescendantQuery.cs
- DecodeHelper.cs
- GenericRootAutomationPeer.cs
- VectorAnimation.cs
- EventToken.cs
- Rect.cs
- PackWebResponse.cs
- GridItem.cs
- FlatButtonAppearance.cs
- Variant.cs
- NumberSubstitution.cs
- ProfileGroupSettings.cs
- MetadataItemSerializer.cs
- ListItemCollection.cs
- Roles.cs
- LogStore.cs
- ConfigsHelper.cs
- TypeForwardedToAttribute.cs
- ImageCodecInfo.cs
- ImmutableObjectAttribute.cs
- IndexedGlyphRun.cs
- IndexedEnumerable.cs
- RegistryDataKey.cs
- XPathMessageFilter.cs
- Enum.cs
- KeyedCollection.cs
- KnownTypesHelper.cs
- ListViewItem.cs
- DocumentEventArgs.cs
- CodeMemberMethod.cs
- XamlSerializer.cs
- SerializationHelper.cs
- ValueQuery.cs
- ValueCollectionParameterReader.cs
- UrlPath.cs
- HtmlInputPassword.cs
- DependencyProperty.cs
- XmlArrayItemAttributes.cs
- SessionState.cs
- SHA512Managed.cs
- LinkDescriptor.cs
- SystemDiagnosticsSection.cs
- OpenFileDialog.cs
- Pool.cs
- InputMethodStateChangeEventArgs.cs
- CommandEventArgs.cs
- DoubleAverageAggregationOperator.cs
- KeyValueConfigurationCollection.cs
- WithParamAction.cs
- SelectorAutomationPeer.cs
- DBBindings.cs
- InternalBase.cs
- TabControl.cs
- ReliableDuplexSessionChannel.cs
- XPathDocumentNavigator.cs
- EventMappingSettingsCollection.cs
- CodePageUtils.cs
- BrowserDefinitionCollection.cs
- DrawListViewItemEventArgs.cs
- FigureHelper.cs
- MembershipSection.cs
- EnumValidator.cs
- RectangleGeometry.cs
- HtmlFormWrapper.cs
- Guid.cs
- ChannelBase.cs
- COM2EnumConverter.cs
- SecurityManager.cs
- ActivityCodeGenerator.cs
- WebPartDescriptionCollection.cs
- ProfileBuildProvider.cs
- HwndHostAutomationPeer.cs
- XmlILStorageConverter.cs
- PropertyRef.cs
- ToolStripContainer.cs
- SectionUpdates.cs
- SessionStateUtil.cs
- KeySplineConverter.cs