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
- CollectionChangeEventArgs.cs
- CacheAxisQuery.cs
- IsolatedStoragePermission.cs
- TickBar.cs
- ObjectTag.cs
- WindowsRichEditRange.cs
- SetMemberBinder.cs
- KoreanCalendar.cs
- MULTI_QI.cs
- PointConverter.cs
- WebPartConnectionsDisconnectVerb.cs
- Blend.cs
- Color.cs
- AddressAlreadyInUseException.cs
- TextRangeBase.cs
- Stylus.cs
- DesignBinding.cs
- EnumBuilder.cs
- TextServicesPropertyRanges.cs
- X509ChainElement.cs
- objectquery_tresulttype.cs
- SpAudioStreamWrapper.cs
- ToolboxItemSnapLineBehavior.cs
- ProfileInfo.cs
- SymbolType.cs
- CustomError.cs
- ValidatedControlConverter.cs
- MessageQueueKey.cs
- ExpressionBuilder.cs
- GenericAuthenticationEventArgs.cs
- DocumentOrderComparer.cs
- RSAOAEPKeyExchangeDeformatter.cs
- altserialization.cs
- XmlNodeChangedEventManager.cs
- ColorAnimationBase.cs
- ParameterSubsegment.cs
- ContextProperty.cs
- Int32AnimationBase.cs
- PhysicalOps.cs
- NamedPermissionSet.cs
- WebPartCatalogCloseVerb.cs
- ValidatingPropertiesEventArgs.cs
- Rect3D.cs
- wpf-etw.cs
- UnionExpr.cs
- JoinCqlBlock.cs
- StrokeNodeEnumerator.cs
- TypeInfo.cs
- CodeAttributeArgument.cs
- SapiRecoContext.cs
- UserInitiatedNavigationPermission.cs
- DirectoryGroupQuery.cs
- Rotation3D.cs
- LogEntrySerializationException.cs
- SdlChannelSink.cs
- ZeroOpNode.cs
- Button.cs
- Annotation.cs
- PeerToPeerException.cs
- SessionState.cs
- ILGenerator.cs
- Crypto.cs
- PrintEvent.cs
- TreeNodeStyleCollection.cs
- TreeViewCancelEvent.cs
- XPathSingletonIterator.cs
- _HTTPDateParse.cs
- WindowsListBox.cs
- Int32CollectionValueSerializer.cs
- CompoundFileStreamReference.cs
- XmlSchemaCollection.cs
- BaseAsyncResult.cs
- MultiAsyncResult.cs
- EventInfo.cs
- DataGridViewRowPrePaintEventArgs.cs
- MDIClient.cs
- HttpCapabilitiesSectionHandler.cs
- PartialClassGenerationTask.cs
- RowUpdatedEventArgs.cs
- WebPartConnectionsConfigureVerb.cs
- BaseUriHelper.cs
- NetworkCredential.cs
- DataServiceKeyAttribute.cs
- PersistenceException.cs
- EditorAttribute.cs
- AstNode.cs
- LightweightCodeGenerator.cs
- InputLanguage.cs
- PathSegment.cs
- LicFileLicenseProvider.cs
- IntranetCredentialPolicy.cs
- BaseCAMarshaler.cs
- NativeWrapper.cs
- DesignerLinkAdapter.cs
- Lease.cs
- ToolStripSeparatorRenderEventArgs.cs
- XmlSchemaFacet.cs
- InheritedPropertyChangedEventArgs.cs
- GraphicsContainer.cs
- UpdateCompiler.cs