Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / xsp / System / Web / Extensions / Util / Pair.cs / 1 / Pair.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Util {
using System;
// Generic Pair class. Overrides Equals() and GetHashCode(), so it can be used as a dictionary key.
internal sealed class Pair {
private readonly TFirst _first;
private readonly TSecond _second;
public Pair(TFirst first, TSecond second) {
_first = first;
_second = second;
}
public TFirst First {
get {
return _first;
}
}
public TSecond Second {
get {
return _second;
}
}
public override bool Equals(object obj) {
if (obj == this) {
return true;
}
Pair other = obj as Pair;
return (other != null) &&
(((other._first == null) && (_first == null)) ||
((other._first != null) && other._first.Equals(_first))) &&
(((other._second == null) && (_second == null)) ||
((other._second != null) && other._second.Equals(_second)));
}
public override int GetHashCode() {
int a = (_first == null) ? 0 : _first.GetHashCode();
int b = (_second == null) ? 0 : _second.GetHashCode();
return HashCodeCombiner.CombineHashCodes(a, b);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Util {
using System;
// Generic Pair class. Overrides Equals() and GetHashCode(), so it can be used as a dictionary key.
internal sealed class Pair {
private readonly TFirst _first;
private readonly TSecond _second;
public Pair(TFirst first, TSecond second) {
_first = first;
_second = second;
}
public TFirst First {
get {
return _first;
}
}
public TSecond Second {
get {
return _second;
}
}
public override bool Equals(object obj) {
if (obj == this) {
return true;
}
Pair other = obj as Pair;
return (other != null) &&
(((other._first == null) && (_first == null)) ||
((other._first != null) && other._first.Equals(_first))) &&
(((other._second == null) && (_second == null)) ||
((other._second != null) && other._second.Equals(_second)));
}
public override int GetHashCode() {
int a = (_first == null) ? 0 : _first.GetHashCode();
int b = (_second == null) ? 0 : _second.GetHashCode();
return HashCodeCombiner.CombineHashCodes(a, b);
}
}
}
// 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
- ConnectionsZone.cs
- TextDecoration.cs
- DBCSCodePageEncoding.cs
- BlockingCollection.cs
- PrintController.cs
- MethodCallConverter.cs
- SystemTcpConnection.cs
- TypeRestriction.cs
- WindowsTokenRoleProvider.cs
- MenuItemBinding.cs
- IdentityHolder.cs
- XmlConvert.cs
- SSmlParser.cs
- GroupItemAutomationPeer.cs
- XmlName.cs
- WebPartManager.cs
- MenuTracker.cs
- PtsContext.cs
- XmlSchemaFacet.cs
- SqlFacetAttribute.cs
- XPathNodeHelper.cs
- Zone.cs
- SizeValueSerializer.cs
- ImageMetadata.cs
- InvalidCommandTreeException.cs
- ToolStripPanel.cs
- NativeMethods.cs
- SimpleLine.cs
- UInt16.cs
- Visual3D.cs
- StreamUpgradeInitiator.cs
- WebPartDisplayModeCollection.cs
- BlobPersonalizationState.cs
- XmlSchemaComplexContentRestriction.cs
- DES.cs
- WebBaseEventKeyComparer.cs
- ToolStripDesigner.cs
- CorrelationActionMessageFilter.cs
- altserialization.cs
- ScriptIgnoreAttribute.cs
- XPathNodePointer.cs
- DetailsViewUpdateEventArgs.cs
- AutomationAttributeInfo.cs
- PropertyValueUIItem.cs
- Logging.cs
- InputQueueChannel.cs
- GcSettings.cs
- StorageAssociationTypeMapping.cs
- StagingAreaInputItem.cs
- ModelTreeManager.cs
- DisplayToken.cs
- DataGridViewComboBoxCell.cs
- Group.cs
- ThreadAbortException.cs
- _OSSOCK.cs
- XmlElementElementCollection.cs
- TextStore.cs
- Variable.cs
- RuntimeDelegateArgument.cs
- ColumnReorderedEventArgs.cs
- RowUpdatingEventArgs.cs
- FacetValueContainer.cs
- ComEventsInfo.cs
- PersianCalendar.cs
- XmlSignificantWhitespace.cs
- AssemblyNameProxy.cs
- AuthenticationServiceManager.cs
- AttributeCollection.cs
- SchemaImporter.cs
- WebEventTraceProvider.cs
- HttpFileCollection.cs
- ContextBase.cs
- Package.cs
- WebPartMenuStyle.cs
- WebPartChrome.cs
- PermissionAttributes.cs
- WebUtility.cs
- EncoderNLS.cs
- DES.cs
- safePerfProviderHandle.cs
- MethodBody.cs
- CharUnicodeInfo.cs
- SpellerInterop.cs
- DataSourceCacheDurationConverter.cs
- PathFigureCollectionConverter.cs
- SafeCertificateContext.cs
- ClientSettingsProvider.cs
- Classification.cs
- Variant.cs
- Image.cs
- DataSetMappper.cs
- ContainsRowNumberChecker.cs
- SigningCredentials.cs
- InstanceDataCollection.cs
- InsufficientMemoryException.cs
- EventRecordWrittenEventArgs.cs
- AbstractExpressions.cs
- GridViewDeletedEventArgs.cs
- IODescriptionAttribute.cs
- CombinedGeometry.cs