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
- _RequestCacheProtocol.cs
- ListItemViewControl.cs
- LogSwitch.cs
- LayoutTableCell.cs
- AssemblyCollection.cs
- SqlConnectionStringBuilder.cs
- TypedTableBase.cs
- Types.cs
- CustomSignedXml.cs
- SafeBitVector32.cs
- SecurityDocument.cs
- IntranetCredentialPolicy.cs
- base64Transforms.cs
- StackBuilderSink.cs
- Path.cs
- CodeFieldReferenceExpression.cs
- InheritanceService.cs
- UriTemplateTable.cs
- PromptBuilder.cs
- DataGridToolTip.cs
- ModelUIElement3D.cs
- IIS7UserPrincipal.cs
- DataContext.cs
- ContextMenuStripGroupCollection.cs
- MessageDispatch.cs
- SelectManyQueryOperator.cs
- BidirectionalDictionary.cs
- Selection.cs
- ObjectSet.cs
- selecteditemcollection.cs
- coordinatorfactory.cs
- SelectionHighlightInfo.cs
- TypedReference.cs
- DetailsViewInsertedEventArgs.cs
- NavigateUrlConverter.cs
- DCSafeHandle.cs
- AutoResizedEvent.cs
- VectorAnimationUsingKeyFrames.cs
- DesignerToolStripControlHost.cs
- SHA384.cs
- ConfigurationStrings.cs
- DefaultProfileManager.cs
- AppDomainFactory.cs
- DataGridViewImageColumn.cs
- EncoderExceptionFallback.cs
- XmlSchemaComplexType.cs
- SignedInfo.cs
- DataControlImageButton.cs
- ProtocolsConfigurationHandler.cs
- StringFormat.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- BuildProvider.cs
- Visitor.cs
- PropertyDescriptor.cs
- XPathScanner.cs
- InheritanceContextChangedEventManager.cs
- GridViewHeaderRowPresenter.cs
- ProcessHostMapPath.cs
- GroupedContextMenuStrip.cs
- NTAccount.cs
- StylusCollection.cs
- AttachedAnnotation.cs
- GeometryModel3D.cs
- ListBox.cs
- ByteKeyFrameCollection.cs
- ListSortDescriptionCollection.cs
- AppModelKnownContentFactory.cs
- SchemaDeclBase.cs
- StandardCommands.cs
- LongTypeConverter.cs
- UnsafeNativeMethods.cs
- ComboBox.cs
- ProbeMatchesCD1.cs
- DmlSqlGenerator.cs
- TreeNodeCollectionEditor.cs
- CodeDirectiveCollection.cs
- RelationshipDetailsRow.cs
- XmlException.cs
- FieldToken.cs
- Environment.cs
- WebServiceErrorEvent.cs
- ShutDownListener.cs
- SystemWebExtensionsSectionGroup.cs
- XPathItem.cs
- FixUp.cs
- BinaryFormatter.cs
- NetWebProxyFinder.cs
- TraceContext.cs
- MessageEncoder.cs
- ExpressionBuilder.cs
- SyndicationSerializer.cs
- CellPartitioner.cs
- FileNotFoundException.cs
- xmlfixedPageInfo.cs
- GuidConverter.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- XmlReflectionMember.cs
- SqlCommandBuilder.cs
- ValueSerializerAttribute.cs
- WebPartVerbsEventArgs.cs