Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / Util / Pair.cs / 1305376 / 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
- CommandTreeTypeHelper.cs
- basevalidator.cs
- DateTimeConverter.cs
- PackageStore.cs
- PointF.cs
- ToolStripDropDownMenu.cs
- JavaScriptObjectDeserializer.cs
- SafeArrayRankMismatchException.cs
- RowsCopiedEventArgs.cs
- TextTreeTextBlock.cs
- JsonServiceDocumentSerializer.cs
- DBPropSet.cs
- GroupItemAutomationPeer.cs
- SynchronizedDisposablePool.cs
- WebPartVerbCollection.cs
- PathTooLongException.cs
- _CommandStream.cs
- WebScriptServiceHost.cs
- RequestCacheEntry.cs
- TransformerInfoCollection.cs
- CacheEntry.cs
- ParentControlDesigner.cs
- IpcServerChannel.cs
- CfgArc.cs
- CrossSiteScriptingValidation.cs
- localization.cs
- WebBaseEventKeyComparer.cs
- ParameterElementCollection.cs
- sqlnorm.cs
- GPRECTF.cs
- ProgressChangedEventArgs.cs
- GroupStyle.cs
- KeyboardNavigation.cs
- DataGridHelper.cs
- HelpInfo.cs
- TypeInfo.cs
- HtmlControl.cs
- BitmapEffectState.cs
- SqlDataReader.cs
- MultiViewDesigner.cs
- PropertyChangeTracker.cs
- OraclePermission.cs
- TextPointer.cs
- DrawingCollection.cs
- CollectionDataContractAttribute.cs
- FocusChangedEventArgs.cs
- WorkflowEnvironment.cs
- Help.cs
- EdmSchemaAttribute.cs
- FixedPage.cs
- SHA384Managed.cs
- SHA512Managed.cs
- FactoryMaker.cs
- MenuAdapter.cs
- StreamReader.cs
- SHA384CryptoServiceProvider.cs
- UInt16.cs
- TextCompositionManager.cs
- DesignerActionKeyboardBehavior.cs
- PresentationTraceSources.cs
- WebReferenceOptions.cs
- SymbolUsageManager.cs
- TextEndOfLine.cs
- CustomLineCap.cs
- DropSourceBehavior.cs
- AlphaSortedEnumConverter.cs
- MutexSecurity.cs
- HandleCollector.cs
- DrawTreeNodeEventArgs.cs
- PrivilegeNotHeldException.cs
- GPRECTF.cs
- DataGridViewRowStateChangedEventArgs.cs
- _ShellExpression.cs
- RijndaelManaged.cs
- WebBrowserNavigatedEventHandler.cs
- HtmlInputHidden.cs
- Options.cs
- OdbcUtils.cs
- WebCategoryAttribute.cs
- BitmapData.cs
- FileUtil.cs
- DictionaryMarkupSerializer.cs
- SafeFileMapViewHandle.cs
- VisualBrush.cs
- ListDictionary.cs
- XamlSerializerUtil.cs
- Label.cs
- HtmlSelect.cs
- XmlNodeList.cs
- DeclaredTypeValidator.cs
- IisNotInstalledException.cs
- ExpressionList.cs
- DataKeyArray.cs
- SqlAliasesReferenced.cs
- DiscoveryExceptionDictionary.cs
- _SafeNetHandles.cs
- DisplayMemberTemplateSelector.cs
- KeyMatchBuilder.cs
- IDispatchConstantAttribute.cs
- ScriptingProfileServiceSection.cs