Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- XmlWriterSettings.cs
- JavaScriptObjectDeserializer.cs
- DbReferenceCollection.cs
- AppDomainFactory.cs
- HexParser.cs
- MdiWindowListItemConverter.cs
- SmiMetaData.cs
- ChangeNode.cs
- RuntimeConfigurationRecord.cs
- FtpCachePolicyElement.cs
- HorizontalAlignConverter.cs
- HtmlContainerControl.cs
- SchemaTableColumn.cs
- SimpleParser.cs
- QilTypeChecker.cs
- WebPartConnectionCollection.cs
- InProcStateClientManager.cs
- CombinedGeometry.cs
- __Filters.cs
- ParentQuery.cs
- CallTemplateAction.cs
- GC.cs
- OperandQuery.cs
- TextTreeNode.cs
- HttpPostedFileBase.cs
- SignatureDescription.cs
- ColorAnimation.cs
- TdsParserSafeHandles.cs
- Base64WriteStateInfo.cs
- DataGridTextBoxColumn.cs
- AlternateView.cs
- ItemAutomationPeer.cs
- PolygonHotSpot.cs
- SQLDouble.cs
- DefaultEventAttribute.cs
- AdCreatedEventArgs.cs
- GuidConverter.cs
- RegularExpressionValidator.cs
- DrawingContextWalker.cs
- XPathNodeHelper.cs
- ProfileSection.cs
- XmlBoundElement.cs
- NavigationHelper.cs
- WebSysDisplayNameAttribute.cs
- BooleanStorage.cs
- WindowsListViewItem.cs
- UnsafeMethods.cs
- ItemMap.cs
- Int16Animation.cs
- EmbeddedMailObject.cs
- SupportsEventValidationAttribute.cs
- DBSqlParserColumnCollection.cs
- UserCancellationException.cs
- FileDialogCustomPlacesCollection.cs
- RayMeshGeometry3DHitTestResult.cs
- ISFClipboardData.cs
- KeyInstance.cs
- SqlDataReader.cs
- DataListDesigner.cs
- SchemaElement.cs
- RawStylusInputCustomData.cs
- SubpageParagraph.cs
- ColorMap.cs
- SmiEventSink.cs
- ArglessEventHandlerProxy.cs
- LoginName.cs
- ICspAsymmetricAlgorithm.cs
- Parameter.cs
- NamespaceListProperty.cs
- HttpBrowserCapabilitiesBase.cs
- WindowsRichEdit.cs
- JoinTreeNode.cs
- DataGridViewCellCollection.cs
- SystemIcmpV4Statistics.cs
- SubMenuStyle.cs
- _NativeSSPI.cs
- ExcCanonicalXml.cs
- ProcessModuleDesigner.cs
- HttpListenerTimeoutManager.cs
- PolicyManager.cs
- WebBrowserNavigatingEventHandler.cs
- Visitor.cs
- ObjectTypeMapping.cs
- ObjectListFieldCollection.cs
- DesignerSelectionListAdapter.cs
- GPRECTF.cs
- securitymgrsite.cs
- LinkedList.cs
- ByteArrayHelperWithString.cs
- SqlParameter.cs
- OleDbCommandBuilder.cs
- RemotingConfigParser.cs
- Utils.cs
- CompareInfo.cs
- TransformConverter.cs
- InputMethod.cs
- UnsafeNativeMethods.cs
- RowsCopiedEventArgs.cs
- NonBatchDirectoryCompiler.cs
- CdpEqualityComparer.cs