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
- ConnectionPointCookie.cs
- BasicKeyConstraint.cs
- GroupDescription.cs
- Relationship.cs
- ItemChangedEventArgs.cs
- RoutedEventArgs.cs
- PageSettings.cs
- DynamicValidatorEventArgs.cs
- XamlInt32CollectionSerializer.cs
- MsmqHostedTransportConfiguration.cs
- XmlSchemaSimpleContentRestriction.cs
- WebPartConnectionsCloseVerb.cs
- WriteableBitmap.cs
- DataListItem.cs
- ObjectTag.cs
- SafeHandle.cs
- AsyncPostBackErrorEventArgs.cs
- ImageAnimator.cs
- SecurityPolicySection.cs
- Canvas.cs
- HtmlMobileTextWriter.cs
- MarkupExtensionSerializer.cs
- XmlBinaryWriterSession.cs
- XmlAnyElementAttribute.cs
- Rectangle.cs
- CapabilitiesRule.cs
- ModuleConfigurationInfo.cs
- TabPanel.cs
- LayoutDump.cs
- Hash.cs
- MD5.cs
- RegexInterpreter.cs
- LabelEditEvent.cs
- ButtonBase.cs
- TransformValueSerializer.cs
- CollectionType.cs
- TimeoutException.cs
- RenameRuleObjectDialog.Designer.cs
- PropertyTabAttribute.cs
- DataFormat.cs
- LazyTextWriterCreator.cs
- ItemMap.cs
- ColumnMapCopier.cs
- CalendarTable.cs
- PeerNameRecord.cs
- WebPartZone.cs
- HostingEnvironment.cs
- XmlDataSourceDesigner.cs
- HandlerBase.cs
- OracleDataAdapter.cs
- ConstructorArgumentAttribute.cs
- DateTimeOffset.cs
- BrowserInteropHelper.cs
- FunctionQuery.cs
- WmpBitmapDecoder.cs
- DataGridViewControlCollection.cs
- ActivityDesignerAccessibleObject.cs
- AppliedDeviceFiltersDialog.cs
- EnterpriseServicesHelper.cs
- HttpResponseHeader.cs
- WaitingCursor.cs
- PartialTrustHelpers.cs
- InternalConfigEventArgs.cs
- DataGridViewRowCancelEventArgs.cs
- QilList.cs
- MexHttpBindingElement.cs
- ListBase.cs
- StringAnimationBase.cs
- DataGridViewRowHeaderCell.cs
- EmbeddedObject.cs
- DataGridSortCommandEventArgs.cs
- ObjectAssociationEndMapping.cs
- ManualResetEventSlim.cs
- XmlSchemas.cs
- SQLConvert.cs
- XmlCustomFormatter.cs
- securitymgrsite.cs
- HyperLink.cs
- NetworkStream.cs
- SortQuery.cs
- ComponentEvent.cs
- GifBitmapDecoder.cs
- XmlMembersMapping.cs
- EnumDataContract.cs
- SupportsPreviewControlAttribute.cs
- MissingSatelliteAssemblyException.cs
- IsolatedStorage.cs
- CodeSnippetCompileUnit.cs
- EnumerableRowCollection.cs
- TextTreeTextElementNode.cs
- ClientSideProviderDescription.cs
- sqlnorm.cs
- DetailsViewUpdatedEventArgs.cs
- DebugHandleTracker.cs
- ActiveDocumentEvent.cs
- BinaryObjectInfo.cs
- XmlAutoDetectWriter.cs
- BitHelper.cs
- CodeNamespaceCollection.cs
- Parameter.cs