Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Shared / MS / Internal / Pair.cs / 1 / Pair.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // Description: Pair class is useful when one needs to treat a pair of objects as a singly key in a collection. // // // History: // 08/04/2005 : mleonov - Created // //--------------------------------------------------------------------------- using System; using System.Diagnostics; namespace MS.Internal { ////// Pair class is useful when one needs to treat a pair of objects as a singly key in a collection. /// Apart from providing storage and accessors, the class forwards GetHashCode and Equals to the contained objects. /// Both object are allowed to be null. /// internal class Pair { public Pair(object first, object second) { _first = first; _second = second; } public object First { get { return _first; } } public object Second { get { return _second; } } public override int GetHashCode() { return (_first == null ? 0 : _first.GetHashCode()) ^ (_second == null ? 0 : _second.GetHashCode()); } public override bool Equals(object o) { Pair other = o as Pair; return other != null && (_first != null ? _first.Equals(other._first) : other._first == null) && (_second != null ? _second.Equals(other._second) : other._second == null); } private object _first; private object _second; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // Description: Pair class is useful when one needs to treat a pair of objects as a singly key in a collection. // // // History: // 08/04/2005 : mleonov - Created // //--------------------------------------------------------------------------- using System; using System.Diagnostics; namespace MS.Internal { ////// Pair class is useful when one needs to treat a pair of objects as a singly key in a collection. /// Apart from providing storage and accessors, the class forwards GetHashCode and Equals to the contained objects. /// Both object are allowed to be null. /// internal class Pair { public Pair(object first, object second) { _first = first; _second = second; } public object First { get { return _first; } } public object Second { get { return _second; } } public override int GetHashCode() { return (_first == null ? 0 : _first.GetHashCode()) ^ (_second == null ? 0 : _second.GetHashCode()); } public override bool Equals(object o) { Pair other = o as Pair; return other != null && (_first != null ? _first.Equals(other._first) : other._first == null) && (_second != null ? _second.Equals(other._second) : other._second == null); } private object _first; private object _second; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AuthorizationSection.cs
- Msmq4PoisonHandler.cs
- OracleParameterCollection.cs
- InvalidPrinterException.cs
- SurrogateSelector.cs
- TextSpan.cs
- ObjectList.cs
- GACIdentityPermission.cs
- DataGridViewRowCancelEventArgs.cs
- ConnectionInterfaceCollection.cs
- TrackingLocationCollection.cs
- SqlDataSource.cs
- SmiRequestExecutor.cs
- SymbolType.cs
- DesignTimeTemplateParser.cs
- IDReferencePropertyAttribute.cs
- BaseDataListDesigner.cs
- Atom10ItemFormatter.cs
- BitmapFrame.cs
- ControlBuilderAttribute.cs
- TreeNodeSelectionProcessor.cs
- ByteStreamGeometryContext.cs
- MembershipPasswordException.cs
- followingquery.cs
- _HTTPDateParse.cs
- ZipFileInfo.cs
- DataControlFieldHeaderCell.cs
- BaseCAMarshaler.cs
- SymbolEqualComparer.cs
- PopupEventArgs.cs
- DbCommandDefinition.cs
- PropertyChangeTracker.cs
- MouseWheelEventArgs.cs
- SqlClientMetaDataCollectionNames.cs
- TextParaClient.cs
- SeparatorAutomationPeer.cs
- SafeArrayTypeMismatchException.cs
- ColumnResult.cs
- InkCanvasAutomationPeer.cs
- Image.cs
- FreeFormDragDropManager.cs
- BigIntegerStorage.cs
- DirectoryObjectSecurity.cs
- LightweightCodeGenerator.cs
- OdbcHandle.cs
- XmlDataLoader.cs
- ProgressBarBrushConverter.cs
- UseAttributeSetsAction.cs
- SecurityRuntime.cs
- GPRECTF.cs
- ServiceProviders.cs
- ThreadAbortException.cs
- TreeViewEvent.cs
- SafeRegistryHandle.cs
- RoleServiceManager.cs
- FlowDocument.cs
- IdleTimeoutMonitor.cs
- ConstrainedGroup.cs
- DataRow.cs
- SrgsDocumentParser.cs
- MarginCollapsingState.cs
- Stackframe.cs
- RtType.cs
- TableHeaderCell.cs
- RangeValidator.cs
- CompiledRegexRunner.cs
- CollectionViewGroup.cs
- TableLayoutCellPaintEventArgs.cs
- WebServiceClientProxyGenerator.cs
- basenumberconverter.cs
- AsyncStreamReader.cs
- PrimitiveCodeDomSerializer.cs
- MappingException.cs
- SafeUserTokenHandle.cs
- FunctionParameter.cs
- VarRemapper.cs
- TopClause.cs
- VariableAction.cs
- NotifyCollectionChangedEventArgs.cs
- SqlMethods.cs
- GridViewEditEventArgs.cs
- validation.cs
- VectorAnimationBase.cs
- InteropDesigner.xaml.cs
- NativeMethods.cs
- PerformanceCounters.cs
- ColorKeyFrameCollection.cs
- MembershipSection.cs
- ColumnMapCopier.cs
- DataList.cs
- SizeValueSerializer.cs
- ReadOnlyDataSource.cs
- PropertyInfoSet.cs
- MenuAdapter.cs
- UnsafeNativeMethods.cs
- log.cs
- TerminatorSinks.cs
- Int32Rect.cs
- XmlSignificantWhitespace.cs
- StyleXamlTreeBuilder.cs