Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / clr / src / BCL / System / Collections / CompatibleComparer.cs / 1 / CompatibleComparer.cs
namespace System.Collections { [Serializable()] internal class CompatibleComparer: IEqualityComparer { IComparer _comparer; #pragma warning disable 618 IHashCodeProvider _hcp; internal CompatibleComparer(IComparer comparer, IHashCodeProvider hashCodeProvider) { _comparer = comparer; _hcp = hashCodeProvider; } #pragma warning restore 618 public int Compare(Object a, Object b) { if (a == b) return 0; if (a == null) return -1; if (b == null) return 1; if (_comparer != null) return _comparer.Compare(a,b); IComparable ia = a as IComparable; if (ia != null) return ia.CompareTo(b); throw new ArgumentException(Environment.GetResourceString("Argument_ImplementIComparable")); } public new bool Equals(Object a, Object b) { return Compare(a, b) == 0; } public int GetHashCode(Object obj) { if( obj == null) { throw new ArgumentNullException("obj"); } if (_hcp != null) return _hcp.GetHashCode(obj); return obj.GetHashCode(); } // These are helpers for the Hashtable to query the IKeyComparer infrastructure. internal IComparer Comparer { get { return _comparer; } } // These are helpers for the Hashtable to query the IKeyComparer infrastructure. #pragma warning disable 618 internal IHashCodeProvider HashCodeProvider { get { return _hcp; } } #pragma warning restore 618 } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Collections { [Serializable()] internal class CompatibleComparer: IEqualityComparer { IComparer _comparer; #pragma warning disable 618 IHashCodeProvider _hcp; internal CompatibleComparer(IComparer comparer, IHashCodeProvider hashCodeProvider) { _comparer = comparer; _hcp = hashCodeProvider; } #pragma warning restore 618 public int Compare(Object a, Object b) { if (a == b) return 0; if (a == null) return -1; if (b == null) return 1; if (_comparer != null) return _comparer.Compare(a,b); IComparable ia = a as IComparable; if (ia != null) return ia.CompareTo(b); throw new ArgumentException(Environment.GetResourceString("Argument_ImplementIComparable")); } public new bool Equals(Object a, Object b) { return Compare(a, b) == 0; } public int GetHashCode(Object obj) { if( obj == null) { throw new ArgumentNullException("obj"); } if (_hcp != null) return _hcp.GetHashCode(obj); return obj.GetHashCode(); } // These are helpers for the Hashtable to query the IKeyComparer infrastructure. internal IComparer Comparer { get { return _comparer; } } // These are helpers for the Hashtable to query the IKeyComparer infrastructure. #pragma warning disable 618 internal IHashCodeProvider HashCodeProvider { get { return _hcp; } } #pragma warning restore 618 } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TemplateControl.cs
- controlskin.cs
- DayRenderEvent.cs
- UrlMappingCollection.cs
- ToolStripContainer.cs
- DependencyObject.cs
- CacheEntry.cs
- SafeEventLogReadHandle.cs
- StringValidatorAttribute.cs
- ContentHostHelper.cs
- Timer.cs
- KeyMatchBuilder.cs
- ExceptionHandler.cs
- MouseActionConverter.cs
- PaperSource.cs
- DataControlFieldCollection.cs
- ProxyGenerationError.cs
- PointConverter.cs
- SignatureToken.cs
- ProtocolViolationException.cs
- TransformedBitmap.cs
- ProcessInputEventArgs.cs
- BlurBitmapEffect.cs
- TextDecorationLocationValidation.cs
- HyperLinkStyle.cs
- FixUpCollection.cs
- DefaultEventAttribute.cs
- ModelChangedEventArgsImpl.cs
- EntityKey.cs
- Matrix.cs
- XmlSchemaComplexContent.cs
- DataControlPagerLinkButton.cs
- RecordConverter.cs
- TcpConnectionPoolSettings.cs
- StrokeCollectionDefaultValueFactory.cs
- File.cs
- MimePart.cs
- RelationshipFixer.cs
- MenuItemCollection.cs
- QueryConverter.cs
- WindowsFormsSynchronizationContext.cs
- EntityParameterCollection.cs
- CommandHelper.cs
- ToolStripContentPanelRenderEventArgs.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- DataGridViewLinkColumn.cs
- DataBindingExpressionBuilder.cs
- RegexCode.cs
- TypeResolver.cs
- ModuleElement.cs
- PerfService.cs
- _NTAuthentication.cs
- BufferedGraphics.cs
- TraceInternal.cs
- SR.Designer.cs
- Model3DGroup.cs
- WebSysDisplayNameAttribute.cs
- DataRelationCollection.cs
- DrawingGroupDrawingContext.cs
- cookiecollection.cs
- ImageAnimator.cs
- ValidationSummary.cs
- ExchangeUtilities.cs
- Serializer.cs
- TextEffect.cs
- XmlSchemaProviderAttribute.cs
- TabletDevice.cs
- SendAgentStatusRequest.cs
- PauseStoryboard.cs
- QueryOperationResponseOfT.cs
- indexingfiltermarshaler.cs
- X509AudioLogo.cs
- WebPartEventArgs.cs
- StringUtil.cs
- Compiler.cs
- DocumentViewer.cs
- SystemGatewayIPAddressInformation.cs
- WindowsEditBoxRange.cs
- ConnectionOrientedTransportManager.cs
- PropertyNames.cs
- SQLConvert.cs
- FontStretches.cs
- ImageAnimator.cs
- HttpCachePolicyElement.cs
- TextBoxBaseDesigner.cs
- HeaderElement.cs
- ChangeInterceptorAttribute.cs
- TextPointerBase.cs
- ImageKeyConverter.cs
- ImageAnimator.cs
- ConditionValidator.cs
- MenuItemBinding.cs
- ApplicationTrust.cs
- TextServicesContext.cs
- WebPartConnectionsCancelVerb.cs
- Menu.cs
- Soap.cs
- NetworkCredential.cs
- bindurihelper.cs
- RelationshipWrapper.cs