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
- ColorBuilder.cs
- ProcessHostConfigUtils.cs
- TextPatternIdentifiers.cs
- SafeRightsManagementSessionHandle.cs
- TypeSystem.cs
- IssuanceLicense.cs
- KeySplineConverter.cs
- StylusPlugin.cs
- FuncCompletionCallbackWrapper.cs
- formatter.cs
- ConfigXmlElement.cs
- InputLangChangeRequestEvent.cs
- TransformCollection.cs
- AspNetHostingPermission.cs
- LineInfo.cs
- ControlPaint.cs
- WindowsSolidBrush.cs
- RandomNumberGenerator.cs
- MenuTracker.cs
- RegexRunnerFactory.cs
- StatusBarAutomationPeer.cs
- TreeViewImageIndexConverter.cs
- NameSpaceEvent.cs
- PeerToPeerException.cs
- KerberosSecurityTokenAuthenticator.cs
- ReadOnlyMetadataCollection.cs
- ObservableCollection.cs
- StreamSecurityUpgradeProvider.cs
- HwndKeyboardInputProvider.cs
- SmtpLoginAuthenticationModule.cs
- SchemaCollectionCompiler.cs
- ContentPresenter.cs
- FontCacheUtil.cs
- UriScheme.cs
- ReferentialConstraint.cs
- DispatcherEventArgs.cs
- GroupItemAutomationPeer.cs
- DataList.cs
- AutoCompleteStringCollection.cs
- BigInt.cs
- WaitHandleCannotBeOpenedException.cs
- ParameterModifier.cs
- XmlExceptionHelper.cs
- BamlRecordWriter.cs
- HttpFileCollection.cs
- ReturnType.cs
- CollectionViewGroupRoot.cs
- StylusPointPropertyInfo.cs
- WebConfigurationFileMap.cs
- IFlowDocumentViewer.cs
- QueryStringHandler.cs
- CodeDirectionExpression.cs
- CodeNamespaceImportCollection.cs
- KnownBoxes.cs
- shaperfactoryquerycachekey.cs
- basevalidator.cs
- CodeCastExpression.cs
- Line.cs
- WebZone.cs
- DataGridItemEventArgs.cs
- HtmlTable.cs
- XmlDataSource.cs
- hresults.cs
- XMLSyntaxException.cs
- QuaternionAnimation.cs
- StylusPointProperty.cs
- AssemblyCache.cs
- HMAC.cs
- XmlNamespaceManager.cs
- sqlpipe.cs
- SingleAnimationBase.cs
- XPathExpr.cs
- ColumnMapVisitor.cs
- WpfKnownTypeInvoker.cs
- MultiPageTextView.cs
- EnumValAlphaComparer.cs
- RegexNode.cs
- WindowsHyperlink.cs
- LocalizableAttribute.cs
- TableLayout.cs
- SourceItem.cs
- OverflowException.cs
- DesignerProperties.cs
- XmlNode.cs
- VerticalAlignConverter.cs
- StrongNameUtility.cs
- PointCollectionConverter.cs
- RectangleHotSpot.cs
- IPHostEntry.cs
- PreProcessInputEventArgs.cs
- TypeUnloadedException.cs
- ImageConverter.cs
- DomainLiteralReader.cs
- TraceSection.cs
- GeometryCombineModeValidation.cs
- DesignerEditorPartChrome.cs
- IndexerNameAttribute.cs
- Decoder.cs
- OleDbReferenceCollection.cs
- IdentityManager.cs