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
- NegotiateStream.cs
- TreeNodeMouseHoverEvent.cs
- SystemGatewayIPAddressInformation.cs
- Evidence.cs
- StaticTextPointer.cs
- DataDocumentXPathNavigator.cs
- Win32Native.cs
- Vector3DCollection.cs
- ProfileServiceManager.cs
- AuthorizationSection.cs
- TextElement.cs
- Label.cs
- StoragePropertyMapping.cs
- GridViewRow.cs
- DBCommand.cs
- SymmetricAlgorithm.cs
- AuthenticationService.cs
- SecurityTokenSpecification.cs
- RequestCachingSection.cs
- SequentialOutput.cs
- CodeTypeOfExpression.cs
- IPHostEntry.cs
- Multiply.cs
- AQNBuilder.cs
- GridViewColumnHeader.cs
- TileModeValidation.cs
- EncodingTable.cs
- MimeTypeMapper.cs
- bidPrivateBase.cs
- RawMouseInputReport.cs
- EventDescriptorCollection.cs
- PersonalizationStateQuery.cs
- SchemaImporterExtension.cs
- ErrorFormatter.cs
- SystemIPInterfaceStatistics.cs
- DependencyObjectProvider.cs
- TableLayoutStyleCollection.cs
- MailSettingsSection.cs
- KernelTypeValidation.cs
- WebSysDescriptionAttribute.cs
- BaseEntityWrapper.cs
- HostingEnvironmentException.cs
- FrameAutomationPeer.cs
- CompiledRegexRunnerFactory.cs
- KeyBinding.cs
- ConstraintManager.cs
- GenericTextProperties.cs
- SystemIPv4InterfaceProperties.cs
- TreeViewAutomationPeer.cs
- DeadCharTextComposition.cs
- FileAuthorizationModule.cs
- WindowsClaimSet.cs
- ConfigurationLoader.cs
- HtmlEmptyTagControlBuilder.cs
- OleDbPropertySetGuid.cs
- AnnotationComponentManager.cs
- FixedSOMContainer.cs
- ProtocolInformationReader.cs
- GregorianCalendar.cs
- WebException.cs
- MessageQueueAccessControlEntry.cs
- TableRowGroup.cs
- WrappedIUnknown.cs
- ReverseInheritProperty.cs
- PersonalizationProviderHelper.cs
- SoapServerProtocol.cs
- AccessDataSource.cs
- Cursor.cs
- SEHException.cs
- GPStream.cs
- XmlUtilWriter.cs
- SerializableAttribute.cs
- SizeIndependentAnimationStorage.cs
- WaitHandle.cs
- PlainXmlDeserializer.cs
- SpeakCompletedEventArgs.cs
- CultureInfo.cs
- BinaryFormatterWriter.cs
- StringOutput.cs
- UnmanagedMemoryStreamWrapper.cs
- ListenerSessionConnection.cs
- SoapIgnoreAttribute.cs
- TagPrefixAttribute.cs
- DynamicPropertyReader.cs
- ServicePrincipalNameElement.cs
- CodePrimitiveExpression.cs
- URI.cs
- CodeArrayIndexerExpression.cs
- HMACSHA1.cs
- ThemeConfigurationDialog.cs
- PerspectiveCamera.cs
- CodeGeneratorOptions.cs
- PluggableProtocol.cs
- XPathDocumentIterator.cs
- HostedTcpTransportManager.cs
- DataGridTableCollection.cs
- ProtocolsConfiguration.cs
- ZipIORawDataFileBlock.cs
- SimpleRecyclingCache.cs
- Timeline.cs