Code:
/ FX-1434 / FX-1434 / 1.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
- EditingContext.cs
- DESCryptoServiceProvider.cs
- XmlComplianceUtil.cs
- RowsCopiedEventArgs.cs
- DefaultTextStore.cs
- EventLogPermissionEntry.cs
- TemplateBindingExtension.cs
- DynamicDataRoute.cs
- OperandQuery.cs
- FormViewRow.cs
- HtmlUtf8RawTextWriter.cs
- XmlSchemaComplexContent.cs
- ListViewDeleteEventArgs.cs
- ItemsControl.cs
- MembershipValidatePasswordEventArgs.cs
- OdbcParameter.cs
- RelAssertionDirectKeyIdentifierClause.cs
- MdImport.cs
- WindowsMenu.cs
- AlternateViewCollection.cs
- XmlElement.cs
- XmlDictionaryWriter.cs
- PrimitiveSchema.cs
- ObjectListDataBindEventArgs.cs
- DataObjectEventArgs.cs
- DispatcherTimer.cs
- TextSelectionHelper.cs
- CodeTryCatchFinallyStatement.cs
- DataGridCheckBoxColumn.cs
- DbConnectionStringCommon.cs
- WindowsListViewScroll.cs
- MULTI_QI.cs
- HuffmanTree.cs
- TableSectionStyle.cs
- Double.cs
- CustomError.cs
- XmlEventCache.cs
- MaskDescriptors.cs
- ObjectManager.cs
- XmlSchemaDatatype.cs
- Utils.cs
- IIS7UserPrincipal.cs
- TemplatedAdorner.cs
- PermissionSet.cs
- ContentTextAutomationPeer.cs
- ProfileInfo.cs
- StoragePropertyMapping.cs
- ClientSettingsSection.cs
- AspNetHostingPermission.cs
- ParserOptions.cs
- EventWaitHandleSecurity.cs
- AdCreatedEventArgs.cs
- ArithmeticException.cs
- Matrix3DValueSerializer.cs
- InputLanguageSource.cs
- Int32KeyFrameCollection.cs
- TreeViewImageIndexConverter.cs
- SendMailErrorEventArgs.cs
- WebFormsRootDesigner.cs
- ListViewItemEventArgs.cs
- ColumnMapProcessor.cs
- ApplicationContext.cs
- TypeListConverter.cs
- XmlProcessingInstruction.cs
- EntityDataReader.cs
- UrlAuthFailedErrorFormatter.cs
- ChooseAction.cs
- TextDecorationCollection.cs
- BrowserCapabilitiesFactory.cs
- X509IssuerSerialKeyIdentifierClause.cs
- ElementsClipboardData.cs
- AssemblyBuilderData.cs
- DataGridViewCellStyleConverter.cs
- ToolboxItem.cs
- CultureMapper.cs
- IconBitmapDecoder.cs
- ExpressionDumper.cs
- EventSinkHelperWriter.cs
- HasCopySemanticsAttribute.cs
- InternalResources.cs
- ClientUrlResolverWrapper.cs
- _KerberosClient.cs
- RepeaterItem.cs
- XamlDesignerSerializationManager.cs
- OracleInternalConnection.cs
- HtmlShim.cs
- ErrorLog.cs
- LazyTextWriterCreator.cs
- ADConnectionHelper.cs
- FileLoadException.cs
- ComAdminInterfaces.cs
- Types.cs
- IItemContainerGenerator.cs
- CompositeCollection.cs
- PropertyValueUIItem.cs
- SqlGatherConsumedAliases.cs
- SetterBaseCollection.cs
- WebReferencesBuildProvider.cs
- TextBoxRenderer.cs
- ContentDisposition.cs