Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XDeferredAxisSource.cs
- DragCompletedEventArgs.cs
- WindowsFormsSectionHandler.cs
- UnauthorizedAccessException.cs
- EditorZoneAutoFormat.cs
- DomainLiteralReader.cs
- DataObjectCopyingEventArgs.cs
- XmlStreamStore.cs
- Point.cs
- DbBuffer.cs
- SingleAnimationBase.cs
- AdRotator.cs
- RemotingSurrogateSelector.cs
- XmlSchemas.cs
- SelectedCellsCollection.cs
- EventLevel.cs
- InfoCardArgumentException.cs
- OleDbEnumerator.cs
- SnapLine.cs
- RelationalExpressions.cs
- ChangePasswordAutoFormat.cs
- UnsafeNativeMethods.cs
- SymbolMethod.cs
- ComContractElement.cs
- MediaElement.cs
- HttpWrapper.cs
- CodeCommentStatementCollection.cs
- ApplicationSecurityManager.cs
- CalendarDesigner.cs
- RPIdentityRequirement.cs
- DodSequenceMerge.cs
- WebControlAdapter.cs
- ProgramNode.cs
- VirtualizingStackPanel.cs
- MonikerProxyAttribute.cs
- SwitchLevelAttribute.cs
- Bidi.cs
- HTMLTextWriter.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- TextParagraphView.cs
- DesignRelation.cs
- SignatureToken.cs
- CacheHelper.cs
- MediaPlayer.cs
- Int32CollectionConverter.cs
- ClosureBinding.cs
- ObjectViewQueryResultData.cs
- XmlCompatibilityReader.cs
- XamlParser.cs
- AttributeEmitter.cs
- ComplexPropertyEntry.cs
- ClientApiGenerator.cs
- DataGridViewCellStyleConverter.cs
- BrushMappingModeValidation.cs
- Rect3DConverter.cs
- RuleSetReference.cs
- CompilerResults.cs
- SqlBulkCopyColumnMapping.cs
- AmbientLight.cs
- LinqDataSourceUpdateEventArgs.cs
- ProgressiveCrcCalculatingStream.cs
- SerializerWriterEventHandlers.cs
- odbcmetadatacolumnnames.cs
- TableCell.cs
- HtmlUtf8RawTextWriter.cs
- WebServiceEnumData.cs
- PaperSize.cs
- RectAnimationBase.cs
- SmtpTransport.cs
- ViewManager.cs
- PerformanceCounterPermission.cs
- CombinedGeometry.cs
- ControlParameter.cs
- basevalidator.cs
- EntityClientCacheKey.cs
- IDispatchConstantAttribute.cs
- ToolStripControlHost.cs
- StrongNameKeyPair.cs
- HighContrastHelper.cs
- JournalEntry.cs
- RuleRef.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- PersonalizationEntry.cs
- BuiltInExpr.cs
- ColumnResizeUndoUnit.cs
- DataGridViewCellParsingEventArgs.cs
- HealthMonitoringSection.cs
- XpsPartBase.cs
- XmlObjectSerializerWriteContextComplex.cs
- DataMemberFieldConverter.cs
- CalendarDay.cs
- FileDialogPermission.cs
- WebMessageEncoderFactory.cs
- XmlBinaryWriterSession.cs
- WebPartMinimizeVerb.cs
- DescendentsWalker.cs
- QuerySettings.cs
- WorkflowDesignerColors.cs
- Input.cs
- AnnotationElement.cs