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
- RowUpdatingEventArgs.cs
- Inflater.cs
- Receive.cs
- StreamingContext.cs
- NamedPipeTransportElement.cs
- BamlResourceDeserializer.cs
- _TLSstream.cs
- DataPagerFieldItem.cs
- ServerIdentity.cs
- RelationshipEndMember.cs
- ObsoleteAttribute.cs
- SmtpException.cs
- RelationshipEndCollection.cs
- SamlAuthorizationDecisionClaimResource.cs
- AlignmentYValidation.cs
- WindowInteropHelper.cs
- MatrixTransform3D.cs
- SizeFConverter.cs
- ProxyWebPart.cs
- SystemIPGlobalStatistics.cs
- OdbcInfoMessageEvent.cs
- ComponentSerializationService.cs
- ProcessThread.cs
- FtpWebResponse.cs
- CatalogPartChrome.cs
- TemplateControlBuildProvider.cs
- ToolStripItemCollection.cs
- SqlBooleanizer.cs
- PersistenceProviderFactory.cs
- DefaultShape.cs
- TextEffect.cs
- WmlControlAdapter.cs
- ExpressionConverter.cs
- WindowHideOrCloseTracker.cs
- LayoutInformation.cs
- DataGridViewColumnStateChangedEventArgs.cs
- ListViewContainer.cs
- RemotingException.cs
- NativeCppClassAttribute.cs
- localization.cs
- XmlSchemaExternal.cs
- HiddenField.cs
- SQLResource.cs
- ItemCheckEvent.cs
- Matrix.cs
- WebServiceTypeData.cs
- MatrixCamera.cs
- RepeatInfo.cs
- GraphicsPathIterator.cs
- BamlWriter.cs
- MemberHolder.cs
- StringInfo.cs
- WaitHandleCannotBeOpenedException.cs
- SQLDateTimeStorage.cs
- WeakHashtable.cs
- StorageScalarPropertyMapping.cs
- WebHttpBehavior.cs
- FontFamily.cs
- HtmlElementCollection.cs
- OdbcConnectionString.cs
- rsa.cs
- ErrorInfoXmlDocument.cs
- SEHException.cs
- UInt32Storage.cs
- ZipIOLocalFileBlock.cs
- TextServicesContext.cs
- EncryptedXml.cs
- DataPagerFieldCommandEventArgs.cs
- PeerNameRecord.cs
- DockingAttribute.cs
- ImageBrush.cs
- SerialStream.cs
- TransformerConfigurationWizardBase.cs
- SqlConnection.cs
- Point3DAnimationUsingKeyFrames.cs
- DataSourceXmlSerializer.cs
- SiteMapProvider.cs
- DummyDataSource.cs
- ControlBuilderAttribute.cs
- TypeDelegator.cs
- ImageCodecInfo.cs
- ObjectStateFormatter.cs
- HtmlInputSubmit.cs
- FontClient.cs
- PageStatePersister.cs
- COM2ICategorizePropertiesHandler.cs
- XmlHelper.cs
- MenuItemStyle.cs
- LightweightCodeGenerator.cs
- SamlNameIdentifierClaimResource.cs
- DataGridCaption.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- Guid.cs
- StrokeNodeOperations2.cs
- WebRequestModulesSection.cs
- BamlStream.cs
- MissingFieldException.cs
- RtType.cs
- JavascriptCallbackBehaviorAttribute.cs
- ExpressionCopier.cs