Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / ConsoleKeyInfo.cs / 1305376 / ConsoleKeyInfo.cs
using System.Diagnostics.Contracts; // ==++== // // 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")); Contract.EndContractBlock(); _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. using System.Diagnostics.Contracts; // ==++== // // 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")); Contract.EndContractBlock(); _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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FilterUserControlBase.cs
- AttachmentService.cs
- IChannel.cs
- TargetException.cs
- TriggerAction.cs
- HwndKeyboardInputProvider.cs
- FrameAutomationPeer.cs
- PaintEvent.cs
- Tuple.cs
- TypeBinaryExpression.cs
- MissingSatelliteAssemblyException.cs
- NewArray.cs
- BaseProcessor.cs
- RecognizerInfo.cs
- PatternMatcher.cs
- AmbientLight.cs
- EventlogProvider.cs
- DataException.cs
- tooltip.cs
- SoapFault.cs
- HostingEnvironmentSection.cs
- ServicesUtilities.cs
- HeaderedContentControl.cs
- TypeValidationEventArgs.cs
- ServiceReference.cs
- CallContext.cs
- Icon.cs
- DbProviderServices.cs
- WebPartAddingEventArgs.cs
- DataGridViewTopLeftHeaderCell.cs
- InsufficientMemoryException.cs
- ToolStripCodeDomSerializer.cs
- HtmlPhoneCallAdapter.cs
- SortDescriptionCollection.cs
- ControlTemplate.cs
- Converter.cs
- ParameterInfo.cs
- QualifiedCellIdBoolean.cs
- ADMembershipProvider.cs
- ToolStripRendererSwitcher.cs
- ArrayWithOffset.cs
- BuiltInExpr.cs
- OracleCommandBuilder.cs
- TypedRowHandler.cs
- StreamReader.cs
- UriGenerator.cs
- BitConverter.cs
- XmlNodeComparer.cs
- LingerOption.cs
- StorageEntityTypeMapping.cs
- ConfigXmlAttribute.cs
- File.cs
- StringValidator.cs
- NonceToken.cs
- Substitution.cs
- SharedPersonalizationStateInfo.cs
- ToolStripArrowRenderEventArgs.cs
- Merger.cs
- MiniConstructorInfo.cs
- PagesSection.cs
- sqlcontext.cs
- PassportAuthenticationEventArgs.cs
- ToolStripGrip.cs
- MergeLocalizationDirectives.cs
- ServicePerformanceCounters.cs
- Cloud.cs
- ItemContainerGenerator.cs
- PermissionToken.cs
- ChannelFactoryBase.cs
- TextEditorCopyPaste.cs
- NumericUpDown.cs
- RectKeyFrameCollection.cs
- Int16.cs
- HMACSHA256.cs
- TemplateBuilder.cs
- HttpCapabilitiesEvaluator.cs
- ApplyTemplatesAction.cs
- PageRequestManager.cs
- ExceptionUtil.cs
- ListControl.cs
- FailedToStartupUIException.cs
- DefaultCompensation.cs
- Visual3D.cs
- StringAnimationBase.cs
- EndpointBehaviorElementCollection.cs
- TextDecoration.cs
- StorageInfo.cs
- TypeExtensions.cs
- XPathNodeIterator.cs
- RtfControlWordInfo.cs
- PreProcessInputEventArgs.cs
- CqlIdentifiers.cs
- OperationContext.cs
- SchemaType.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- FrameworkElementFactory.cs
- MouseBinding.cs
- AssemblyEvidenceFactory.cs
- TargetInvocationException.cs
- EventDrivenDesigner.cs