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
- Regex.cs
- WsdlParser.cs
- FixedSOMTable.cs
- IisTraceWebEventProvider.cs
- NumericUpDownAcceleration.cs
- CharStorage.cs
- FontWeightConverter.cs
- Thumb.cs
- DesignBindingPicker.cs
- OdbcConnectionOpen.cs
- XmlProcessingInstruction.cs
- EntityDesignerBuildProvider.cs
- __ConsoleStream.cs
- baseaxisquery.cs
- DataObjectEventArgs.cs
- ForeignKeyFactory.cs
- BindingContext.cs
- LinqDataView.cs
- WorkflowExecutor.cs
- ModelUIElement3D.cs
- ActionFrame.cs
- WindowsEditBox.cs
- UnmanagedMemoryAccessor.cs
- TokenBasedSet.cs
- URLIdentityPermission.cs
- EventlogProvider.cs
- WebPartZone.cs
- ResetableIterator.cs
- oledbconnectionstring.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- DataGridDesigner.cs
- CodeIdentifiers.cs
- TextBox.cs
- SRDisplayNameAttribute.cs
- Debugger.cs
- X509ServiceCertificateAuthenticationElement.cs
- ObjectReferenceStack.cs
- HttpApplication.cs
- ListControlBoundActionList.cs
- ToolStripContainer.cs
- RegexCode.cs
- BitmapPalette.cs
- ValidatingReaderNodeData.cs
- InsufficientMemoryException.cs
- BooleanSwitch.cs
- ShaperBuffers.cs
- EntitySetBase.cs
- EtwTrace.cs
- ModifiableIteratorCollection.cs
- EnumCodeDomSerializer.cs
- Panel.cs
- ObjectListItemCollection.cs
- MetaForeignKeyColumn.cs
- DetailsViewInsertEventArgs.cs
- CodeLinePragma.cs
- XmlSchemaInferenceException.cs
- IISMapPath.cs
- RenamedEventArgs.cs
- InspectionWorker.cs
- RegisteredArrayDeclaration.cs
- WindowsRegion.cs
- UrlAuthorizationModule.cs
- DLinqTableProvider.cs
- CounterCreationData.cs
- IDReferencePropertyAttribute.cs
- ScrollItemPatternIdentifiers.cs
- newinstructionaction.cs
- DateTimeStorage.cs
- Item.cs
- LeftCellWrapper.cs
- SqlCommand.cs
- ErrorFormatter.cs
- WindowsGraphicsWrapper.cs
- XamlToRtfParser.cs
- OrderablePartitioner.cs
- DesignerDataConnection.cs
- InputLanguageManager.cs
- DirectoryObjectSecurity.cs
- ConfigurationStrings.cs
- PatternMatcher.cs
- ProtocolsConfiguration.cs
- CompatibleIComparer.cs
- DeclarativeExpressionConditionDeclaration.cs
- SqlDataSourceView.cs
- EventLogTraceListener.cs
- GiveFeedbackEvent.cs
- TransformValueSerializer.cs
- SplineKeyFrames.cs
- RoutingExtension.cs
- Exceptions.cs
- FixedFindEngine.cs
- DataSysAttribute.cs
- SystemKeyConverter.cs
- EventHandlerList.cs
- WhiteSpaceTrimStringConverter.cs
- Variable.cs
- CodeExpressionStatement.cs
- GlobalItem.cs
- Mutex.cs
- SemaphoreSecurity.cs