Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- Path.cs
- BrowserTree.cs
- WebPartVerbCollection.cs
- SqlXml.cs
- PointValueSerializer.cs
- BackgroundWorker.cs
- DynamicRenderer.cs
- Compiler.cs
- activationcontext.cs
- DataGridCaption.cs
- MustUnderstandBehavior.cs
- ProtectedConfiguration.cs
- XmlConvert.cs
- LineGeometry.cs
- precedingsibling.cs
- RegexGroupCollection.cs
- ConfigXmlAttribute.cs
- DnsPermission.cs
- WebEventTraceProvider.cs
- MessageAction.cs
- StyleXamlParser.cs
- Scheduling.cs
- Guid.cs
- UIPermission.cs
- HyperLink.cs
- KerberosRequestorSecurityToken.cs
- Quad.cs
- Main.cs
- CompilationUtil.cs
- AutoResizedEvent.cs
- TrackingRecord.cs
- MaskDesignerDialog.cs
- DebugView.cs
- recordstatescratchpad.cs
- Repeater.cs
- WebPartCloseVerb.cs
- Interlocked.cs
- MimeXmlImporter.cs
- WebRequest.cs
- Adorner.cs
- LayoutUtils.cs
- Stroke2.cs
- DesignerLoader.cs
- PrimitiveType.cs
- ScrollItemPatternIdentifiers.cs
- ColumnTypeConverter.cs
- DataGridViewControlCollection.cs
- SecurityPolicySection.cs
- HostProtectionException.cs
- OpenTypeCommon.cs
- FixedStringLookup.cs
- StyleCollectionEditor.cs
- MethodToken.cs
- figurelengthconverter.cs
- printdlgexmarshaler.cs
- NativeMethods.cs
- Native.cs
- EntityContainer.cs
- _SpnDictionary.cs
- DataPagerFieldCollection.cs
- IndexedEnumerable.cs
- OdbcConnectionPoolProviderInfo.cs
- IntSecurity.cs
- SqlDataReaderSmi.cs
- FtpWebResponse.cs
- Walker.cs
- PeerContact.cs
- TextSerializer.cs
- ObjectDataSourceStatusEventArgs.cs
- ProfileParameter.cs
- ColorAnimation.cs
- Constraint.cs
- OutputCacheSection.cs
- UserNamePasswordValidationMode.cs
- MimeMapping.cs
- UnsafeNativeMethodsTablet.cs
- SchemaComplexType.cs
- CodeDomSerializationProvider.cs
- MobileControlsSectionHandler.cs
- LineUtil.cs
- Proxy.cs
- GeneralTransform2DTo3D.cs
- Utils.cs
- SettingsSection.cs
- IpcClientChannel.cs
- PropertyGridDesigner.cs
- ServiceAuthorizationManager.cs
- PipelineComponent.cs
- ClientRuntimeConfig.cs
- OletxTransactionHeader.cs
- XmlLoader.cs
- DocumentViewerAutomationPeer.cs
- PageAsyncTaskManager.cs
- ProtocolsConfiguration.cs
- DataGrid.cs
- ImageListStreamer.cs
- ellipse.cs
- EmptyControlCollection.cs
- EncodingTable.cs
- ServiceBuildProvider.cs