Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- DesignerDataStoredProcedure.cs
- TraceUtility.cs
- UnionExpr.cs
- XmlSerializationReader.cs
- util.cs
- IconHelper.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- ActionMessageFilterTable.cs
- IItemProperties.cs
- LinkedResourceCollection.cs
- WorkflowPageSetupDialog.cs
- Substitution.cs
- MetadataException.cs
- PropertyChangeTracker.cs
- MessageLoggingFilterTraceRecord.cs
- DataGridViewDataConnection.cs
- cryptoapiTransform.cs
- SqlCacheDependency.cs
- XmlStreamNodeWriter.cs
- Color.cs
- X509ImageLogo.cs
- SHA256.cs
- TextOnlyOutput.cs
- WebResponse.cs
- HtmlCommandAdapter.cs
- XmlNamedNodeMap.cs
- XmlNodeChangedEventArgs.cs
- HttpCapabilitiesBase.cs
- SyndicationFeed.cs
- WindowsTab.cs
- ConstructorNeedsTagAttribute.cs
- OdbcTransaction.cs
- ImageSource.cs
- GPPOINT.cs
- EventRoute.cs
- OleDbMetaDataFactory.cs
- WpfKnownMember.cs
- BrowsableAttribute.cs
- MappingModelBuildProvider.cs
- HuffCodec.cs
- ResourcePermissionBase.cs
- ByValueEqualityComparer.cs
- MappingItemCollection.cs
- ConstructorBuilder.cs
- RbTree.cs
- OLEDB_Enum.cs
- ModelPropertyDescriptor.cs
- NaturalLanguageHyphenator.cs
- ExpressionBuilderContext.cs
- CompilerLocalReference.cs
- HTTPNotFoundHandler.cs
- DecoderExceptionFallback.cs
- CodeArrayIndexerExpression.cs
- PowerModeChangedEventArgs.cs
- FontStyle.cs
- TableItemStyle.cs
- BaseTemplateCodeDomTreeGenerator.cs
- AssemblyCache.cs
- GB18030Encoding.cs
- webclient.cs
- EventListenerClientSide.cs
- XhtmlBasicLiteralTextAdapter.cs
- GetResponse.cs
- SmtpAuthenticationManager.cs
- GlyphTypeface.cs
- unitconverter.cs
- SatelliteContractVersionAttribute.cs
- FlowDocumentPaginator.cs
- PropertyMapper.cs
- SAPIEngineTypes.cs
- PerformanceCountersElement.cs
- WrappedIUnknown.cs
- EventLogException.cs
- ReliabilityContractAttribute.cs
- DependencySource.cs
- EndEvent.cs
- MessageBox.cs
- InstancePersistenceCommand.cs
- PaintEvent.cs
- LicenseProviderAttribute.cs
- RuntimeWrappedException.cs
- Help.cs
- TriggerBase.cs
- TouchEventArgs.cs
- HtmlLink.cs
- Utils.cs
- Pair.cs
- CultureSpecificStringDictionary.cs
- XpsImageSerializationService.cs
- SimpleWorkerRequest.cs
- RectAnimation.cs
- Partitioner.cs
- DigitalSignatureProvider.cs
- filewebresponse.cs
- XPathPatternParser.cs
- MobileControlsSectionHandler.cs
- Size.cs
- StoreContentChangedEventArgs.cs
- DocumentPageTextView.cs
- SqlUdtInfo.cs