Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XamlDesignerSerializationManager.cs
- IncomingWebRequestContext.cs
- AsymmetricCryptoHandle.cs
- WebPartManager.cs
- WindowsToolbarAsMenu.cs
- XmlMemberMapping.cs
- SpellerStatusTable.cs
- LinqDataSourceContextData.cs
- HtmlButton.cs
- IisTraceWebEventProvider.cs
- SettingsBindableAttribute.cs
- Dynamic.cs
- RequiredFieldValidator.cs
- ObjectTypeMapping.cs
- ObjectStorage.cs
- SHA1Managed.cs
- DetailsViewPageEventArgs.cs
- DataViewListener.cs
- DefaultDialogButtons.cs
- Logging.cs
- AppDomainCompilerProxy.cs
- TemplateControlBuildProvider.cs
- ConfigDefinitionUpdates.cs
- DataGridViewCell.cs
- GatewayDefinition.cs
- ReliableInputConnection.cs
- SqlSelectClauseBuilder.cs
- FrameworkElement.cs
- ComponentManagerBroker.cs
- PersianCalendar.cs
- IPPacketInformation.cs
- ApplicationContext.cs
- CommandManager.cs
- ContextStack.cs
- XPathNodeList.cs
- ApplicationCommands.cs
- XmlSchemaInfo.cs
- EventMappingSettings.cs
- SafeArrayRankMismatchException.cs
- RectValueSerializer.cs
- TraceProvider.cs
- DataGridViewAdvancedBorderStyle.cs
- PrefixQName.cs
- ZoneIdentityPermission.cs
- ArcSegment.cs
- NumericExpr.cs
- QueryOutputWriterV1.cs
- DataDocumentXPathNavigator.cs
- BuildProvider.cs
- DrawingDrawingContext.cs
- Ref.cs
- ValidatedMobileControlConverter.cs
- AutomationPattern.cs
- ReflectionPermission.cs
- unsafeIndexingFilterStream.cs
- RegexGroup.cs
- BeginStoryboard.cs
- Executor.cs
- WindowAutomationPeer.cs
- Annotation.cs
- CodeDirectiveCollection.cs
- FamilyMapCollection.cs
- RtfControlWordInfo.cs
- StyleSelector.cs
- LineProperties.cs
- FieldInfo.cs
- TemplateBuilder.cs
- DesignerView.Commands.cs
- Underline.cs
- MimeMapping.cs
- DateTimeOffset.cs
- SafeArrayTypeMismatchException.cs
- SecurityChannelFactory.cs
- TextureBrush.cs
- PathGeometry.cs
- PowerModeChangedEventArgs.cs
- Popup.cs
- DataGridHeaderBorder.cs
- EvidenceTypeDescriptor.cs
- DWriteFactory.cs
- EnumerableRowCollection.cs
- KeyedHashAlgorithm.cs
- ClientRolePrincipal.cs
- CodeGroup.cs
- ProcessModelInfo.cs
- AdornerDecorator.cs
- PackageDigitalSignature.cs
- ControlIdConverter.cs
- WizardStepBase.cs
- BaseAddressElementCollection.cs
- ClipboardProcessor.cs
- BuiltInPermissionSets.cs
- M3DUtil.cs
- ArgumentFixer.cs
- DataSourceProvider.cs
- ObjectTypeMapping.cs
- KeyConstraint.cs
- CompilerLocalReference.cs
- MetadataArtifactLoaderComposite.cs
- RtfControls.cs