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
- DataViewManagerListItemTypeDescriptor.cs
- QueryHandler.cs
- ContainerControl.cs
- ToolStripItemTextRenderEventArgs.cs
- PathSegment.cs
- BindingContext.cs
- TextRunCache.cs
- CodeParameterDeclarationExpressionCollection.cs
- Blend.cs
- FlatButtonAppearance.cs
- HttpCapabilitiesSectionHandler.cs
- validation.cs
- HttpProfileGroupBase.cs
- ExpressionCopier.cs
- StrokeCollectionDefaultValueFactory.cs
- ComplexLine.cs
- SharedStatics.cs
- SocketManager.cs
- ProfileEventArgs.cs
- CreateBookmarkScope.cs
- OracleLob.cs
- CommandBinding.cs
- QuadraticBezierSegment.cs
- TableCell.cs
- WorkflowOperationInvoker.cs
- TdsRecordBufferSetter.cs
- BamlVersionHeader.cs
- ManagedIStream.cs
- TextContainerChangeEventArgs.cs
- TraceData.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- ObjectReferenceStack.cs
- X509SecurityTokenProvider.cs
- XmlHelper.cs
- __FastResourceComparer.cs
- RectAnimation.cs
- KeySplineConverter.cs
- ClientSettingsSection.cs
- AnimationStorage.cs
- DefaultBinder.cs
- oledbmetadatacollectionnames.cs
- XamlVector3DCollectionSerializer.cs
- PointLight.cs
- UshortList2.cs
- Module.cs
- PropertyCondition.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- Span.cs
- PriorityBinding.cs
- DeflateInput.cs
- DbCommandTree.cs
- ParameterReplacerVisitor.cs
- ReadOnlyTernaryTree.cs
- SeekableReadStream.cs
- __ComObject.cs
- DeferredSelectedIndexReference.cs
- SchemaCollectionCompiler.cs
- SqlServer2KCompatibilityAnnotation.cs
- ScrollEvent.cs
- BinaryWriter.cs
- PairComparer.cs
- PlaceHolder.cs
- TagPrefixCollection.cs
- ControlBuilderAttribute.cs
- COM2PictureConverter.cs
- XmlNotation.cs
- GridViewItemAutomationPeer.cs
- LocatorPart.cs
- TimeSpanFormat.cs
- StorageBasedPackageProperties.cs
- ConnectionOrientedTransportManager.cs
- XmlnsCompatibleWithAttribute.cs
- PrivilegedConfigurationManager.cs
- LinkDesigner.cs
- COM2ICategorizePropertiesHandler.cs
- PerformanceCounters.cs
- WindowPattern.cs
- AppDomainInstanceProvider.cs
- UICuesEvent.cs
- CellTreeSimplifier.cs
- TemplateControl.cs
- GridViewUpdatedEventArgs.cs
- DockAndAnchorLayout.cs
- ToolStripLabel.cs
- DesignerValidatorAdapter.cs
- ChtmlPageAdapter.cs
- DataSetUtil.cs
- WpfGeneratedKnownProperties.cs
- ResXBuildProvider.cs
- Timeline.cs
- XmlReturnReader.cs
- PassportAuthenticationEventArgs.cs
- CodeCompiler.cs
- PingOptions.cs
- Binding.cs
- DispatcherFrame.cs
- KeyTime.cs
- ExternalException.cs
- CalendarDateRangeChangingEventArgs.cs
- FormViewPagerRow.cs