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
- EmptyEnumerator.cs
- TypeLibConverter.cs
- Boolean.cs
- KeySpline.cs
- CommonDialog.cs
- _NetRes.cs
- Stylesheet.cs
- AmbientLight.cs
- EntityTransaction.cs
- Rotation3DKeyFrameCollection.cs
- SmiTypedGetterSetter.cs
- DiagnosticTrace.cs
- PasswordTextNavigator.cs
- Events.cs
- ComponentRenameEvent.cs
- DBSchemaTable.cs
- ErasingStroke.cs
- AmbiguousMatchException.cs
- XmlTextReader.cs
- AsmxEndpointPickerExtension.cs
- SByteStorage.cs
- KnownColorTable.cs
- DesignerVerb.cs
- XmlQueryOutput.cs
- TextSelection.cs
- ProgressBarAutomationPeer.cs
- MethodToken.cs
- Geometry.cs
- Point3DCollection.cs
- __Error.cs
- InternalsVisibleToAttribute.cs
- Inline.cs
- _NestedMultipleAsyncResult.cs
- EdmRelationshipRoleAttribute.cs
- GeometryDrawing.cs
- Decimal.cs
- SqlGatherConsumedAliases.cs
- DataServiceKeyAttribute.cs
- ComponentRenameEvent.cs
- ByteFacetDescriptionElement.cs
- DragEventArgs.cs
- Pts.cs
- StringUtil.cs
- StoreItemCollection.Loader.cs
- UIElement3D.cs
- ToolStripRenderer.cs
- SqlDataSourceFilteringEventArgs.cs
- TreeNodeBinding.cs
- EventItfInfo.cs
- NetworkInterface.cs
- AndCondition.cs
- ComplexLine.cs
- lengthconverter.cs
- ReferentialConstraint.cs
- PageThemeParser.cs
- AutoSizeComboBox.cs
- LowerCaseStringConverter.cs
- WebResourceUtil.cs
- RawMouseInputReport.cs
- IfJoinedCondition.cs
- SoapHeaders.cs
- SystemResourceKey.cs
- SerializationAttributes.cs
- EntityDataSourceReferenceGroup.cs
- BuildProviderAppliesToAttribute.cs
- NotEqual.cs
- UnescapedXmlDiagnosticData.cs
- SystemColors.cs
- ManagedFilter.cs
- PointValueSerializer.cs
- sitestring.cs
- WaitHandle.cs
- ApplicationFileCodeDomTreeGenerator.cs
- RulePatternOps.cs
- DesignTimeType.cs
- TextRunCacheImp.cs
- RightNameExpirationInfoPair.cs
- XmlLinkedNode.cs
- EncoderBestFitFallback.cs
- CodeCatchClauseCollection.cs
- FormClosedEvent.cs
- Privilege.cs
- MessageQueueAccessControlEntry.cs
- ISO2022Encoding.cs
- DelayedRegex.cs
- InteropBitmapSource.cs
- AmbientLight.cs
- Pair.cs
- EmitterCache.cs
- HashCodeCombiner.cs
- ContractHandle.cs
- XPathDescendantIterator.cs
- GrammarBuilderDictation.cs
- ProfileParameter.cs
- NumericPagerField.cs
- ExpressionCopier.cs
- StringDictionaryCodeDomSerializer.cs
- EndOfStreamException.cs
- SafeNativeMemoryHandle.cs
- TransformPattern.cs