Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / CompatibleComparer.cs / 1305376 / CompatibleComparer.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // using System.Diagnostics.Contracts; 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"); } Contract.EndContractBlock(); 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ExpressionBuilderContext.cs
- Imaging.cs
- CheckBox.cs
- LinqDataSourceDisposeEventArgs.cs
- ProfileServiceManager.cs
- ObjectDisposedException.cs
- Certificate.cs
- SafeLibraryHandle.cs
- BrowserCapabilitiesFactory.cs
- ShutDownListener.cs
- InkCanvasSelection.cs
- CompositeDataBoundControl.cs
- FileFormatException.cs
- WebPartConnectionsConfigureVerb.cs
- Cursors.cs
- EntityProviderServices.cs
- CssTextWriter.cs
- LinearQuaternionKeyFrame.cs
- SqlTypeConverter.cs
- XmlUnspecifiedAttribute.cs
- WorkItem.cs
- HScrollBar.cs
- XmlWriterTraceListener.cs
- XmlCountingReader.cs
- SqlDataSourceCommandEventArgs.cs
- XamlSerializationHelper.cs
- EntityContainer.cs
- ContainerControl.cs
- ToolStripControlHost.cs
- CompositeDuplexBindingElement.cs
- SharedUtils.cs
- GraphicsPathIterator.cs
- PopupRootAutomationPeer.cs
- Parsers.cs
- TypeHelpers.cs
- DataServiceQueryProvider.cs
- HTTP_SERVICE_CONFIG_URLACL_KEY.cs
- RangeExpression.cs
- BitmapInitialize.cs
- ReadOnlyPropertyMetadata.cs
- HashCodeCombiner.cs
- HandlerFactoryCache.cs
- PropertyValue.cs
- ListItem.cs
- StylusDownEventArgs.cs
- InputScope.cs
- ResourceReferenceExpression.cs
- GridViewAutomationPeer.cs
- ToolStripPanelCell.cs
- IIS7UserPrincipal.cs
- StaticTextPointer.cs
- TagPrefixAttribute.cs
- Oid.cs
- MgmtConfigurationRecord.cs
- RemoveStoryboard.cs
- MsmqInputChannelBase.cs
- DataColumnMappingCollection.cs
- ConfigurationException.cs
- ThousandthOfEmRealPoints.cs
- XPathNodeIterator.cs
- SettingsPropertyIsReadOnlyException.cs
- cookiecollection.cs
- DataGridViewMethods.cs
- XmlSchemaValidationException.cs
- IRCollection.cs
- EventToken.cs
- DocumentsTrace.cs
- StringSource.cs
- ToggleButton.cs
- SqlLiftIndependentRowExpressions.cs
- DecoratedNameAttribute.cs
- MetadataCache.cs
- SiteMapPath.cs
- WindowsFont.cs
- ObjectQuery_EntitySqlExtensions.cs
- XmlChildEnumerator.cs
- ArgumentException.cs
- TextServicesCompartment.cs
- DbInsertCommandTree.cs
- TagPrefixCollection.cs
- LayoutEvent.cs
- AbstractSvcMapFileLoader.cs
- CreateUserWizard.cs
- ErrorStyle.cs
- TrackingMemoryStreamFactory.cs
- XmlDocumentFragment.cs
- ResourceCategoryAttribute.cs
- SqlError.cs
- StateMachineAction.cs
- CapiSymmetricAlgorithm.cs
- CustomError.cs
- ConfigurationStrings.cs
- SiteMapHierarchicalDataSourceView.cs
- TemplateBindingExpressionConverter.cs
- SapiRecognizer.cs
- GrammarBuilderWildcard.cs
- StreamingContext.cs
- StylusEventArgs.cs
- Executor.cs
- Input.cs