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
- RuleSettingsCollection.cs
- SQLByteStorage.cs
- Int32Rect.cs
- XmlLanguageConverter.cs
- GlyphRunDrawing.cs
- MetadataHelper.cs
- DocumentEventArgs.cs
- UpDownEvent.cs
- XmlSchemaParticle.cs
- ListViewInsertedEventArgs.cs
- FilteredReadOnlyMetadataCollection.cs
- GregorianCalendarHelper.cs
- WebPartZoneCollection.cs
- ArrayWithOffset.cs
- RevocationPoint.cs
- XmlStreamedByteStreamReader.cs
- SyndicationDeserializer.cs
- PermissionListSet.cs
- WebPartVerbCollection.cs
- RegexWorker.cs
- JsonDeserializer.cs
- HttpDictionary.cs
- PathStreamGeometryContext.cs
- ViewRendering.cs
- XmlSchemaSubstitutionGroup.cs
- FlowPanelDesigner.cs
- PackageRelationship.cs
- StrokeRenderer.cs
- ScriptResourceAttribute.cs
- TreeViewEvent.cs
- InvokeMemberBinder.cs
- CommandBindingCollection.cs
- EntityProxyTypeInfo.cs
- DataServiceQueryException.cs
- ConfigurationStrings.cs
- ValidatingReaderNodeData.cs
- DataGridLinkButton.cs
- PackageRelationship.cs
- HtmlInputControl.cs
- JournalEntryStack.cs
- PageWrapper.cs
- OdbcParameterCollection.cs
- IPEndPoint.cs
- DesignerVerbToolStripMenuItem.cs
- SqlBulkCopyColumnMapping.cs
- SoapSchemaMember.cs
- Compiler.cs
- SqlMethodAttribute.cs
- SqlTypesSchemaImporter.cs
- PolyBezierSegment.cs
- DefaultValueConverter.cs
- TextTreeDeleteContentUndoUnit.cs
- EntityDataSourceStatementEditorForm.cs
- HitTestWithGeometryDrawingContextWalker.cs
- Events.cs
- TransformerConfigurationWizardBase.cs
- EmptyEnumerator.cs
- GC.cs
- SoapAttributeAttribute.cs
- DeclarativeCatalogPart.cs
- CompatibleIComparer.cs
- BitmapSizeOptions.cs
- HtmlInputReset.cs
- PrintDialogException.cs
- SchemaConstraints.cs
- WebDescriptionAttribute.cs
- RectangleGeometry.cs
- TypeForwardedToAttribute.cs
- MatrixKeyFrameCollection.cs
- SocketSettings.cs
- storepermissionattribute.cs
- HMAC.cs
- LoginDesigner.cs
- ToolStripScrollButton.cs
- DeploymentSection.cs
- CacheSection.cs
- updatecommandorderer.cs
- AsymmetricKeyExchangeDeformatter.cs
- ChangeConflicts.cs
- UniqueSet.cs
- PopupEventArgs.cs
- ConfigurationValues.cs
- FontUnitConverter.cs
- TransformGroup.cs
- DependencyProperty.cs
- SizeFConverter.cs
- HostExecutionContextManager.cs
- ToolStripMenuItem.cs
- AutomationPropertyInfo.cs
- Control.cs
- EventHandlersStore.cs
- CompilationRelaxations.cs
- Timeline.cs
- StorageModelBuildProvider.cs
- Bidi.cs
- CreateBookmarkScope.cs
- ConfigurationHandlersInstallComponent.cs
- RuleSettings.cs
- TableLayoutPanelResizeGlyph.cs
- TextServicesLoader.cs