Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Internal / Pair.cs / 1305600 / 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
- NativeWindow.cs
- WebReferenceCollection.cs
- MailFileEditor.cs
- OptimizedTemplateContent.cs
- SolidColorBrush.cs
- PolyBezierSegmentFigureLogic.cs
- HtmlElementErrorEventArgs.cs
- ConversionContext.cs
- SqlDataSourceStatusEventArgs.cs
- EndOfStreamException.cs
- SetterBase.cs
- DbReferenceCollection.cs
- XsdValidatingReader.cs
- WindowsSecurityToken.cs
- IApplicationTrustManager.cs
- ClientType.cs
- X509CertificateStore.cs
- DataGridView.cs
- StylusPointPropertyInfo.cs
- ResourceSetExpression.cs
- PagerSettings.cs
- InputMethodStateChangeEventArgs.cs
- WebPartDisplayModeCancelEventArgs.cs
- WebWorkflowRole.cs
- MatrixConverter.cs
- WindowsTreeView.cs
- ElementNotEnabledException.cs
- _RequestLifetimeSetter.cs
- DefaultMemberAttribute.cs
- HttpWrapper.cs
- FunctionMappingTranslator.cs
- RpcCryptoContext.cs
- WorkflowInstanceQuery.cs
- RadioButton.cs
- DefaultPrintController.cs
- SqlConnectionManager.cs
- WmlTextViewAdapter.cs
- WebGetAttribute.cs
- SqlClientWrapperSmiStreamChars.cs
- SR.cs
- ConfigurationPropertyCollection.cs
- ColorAnimation.cs
- TypedTableBase.cs
- DataListItemEventArgs.cs
- FloatMinMaxAggregationOperator.cs
- TimelineGroup.cs
- XmlSchemaAttributeGroupRef.cs
- PngBitmapDecoder.cs
- RowCache.cs
- ApplicationSecurityManager.cs
- BitmapPalette.cs
- SqlXmlStorage.cs
- RoleManagerEventArgs.cs
- DataProtection.cs
- XamlVector3DCollectionSerializer.cs
- ReturnValue.cs
- MailWriter.cs
- QilStrConcatenator.cs
- ServiceHostingEnvironment.cs
- SharedConnectionListener.cs
- XmlCharCheckingReader.cs
- TemplateAction.cs
- httpserverutility.cs
- _DisconnectOverlappedAsyncResult.cs
- AmbientLight.cs
- ScrollContentPresenter.cs
- TextRangeEdit.cs
- FixedBufferAttribute.cs
- Rule.cs
- PrimaryKeyTypeConverter.cs
- CookieParameter.cs
- CustomBindingElementCollection.cs
- Size3DValueSerializer.cs
- StylusPointPropertyId.cs
- DesignerVerbCollection.cs
- SqlInternalConnectionSmi.cs
- ColumnWidthChangingEvent.cs
- HttpCookie.cs
- ConfigurationSettings.cs
- HtmlLink.cs
- ImpersonateTokenRef.cs
- CategoryNameCollection.cs
- ValidatorCompatibilityHelper.cs
- EmbeddedMailObjectsCollection.cs
- StretchValidation.cs
- InputScope.cs
- PropertyExpression.cs
- AttributeEmitter.cs
- HtmlTitle.cs
- FacetChecker.cs
- CompositeControl.cs
- BamlRecordWriter.cs
- BrushValueSerializer.cs
- AbandonedMutexException.cs
- QueryMatcher.cs
- MetadataItem.cs
- BitmapEffectInput.cs
- MetadataArtifactLoaderResource.cs
- IisTraceWebEventProvider.cs
- PixelShader.cs