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
- TextServicesCompartment.cs
- SkipStoryboardToFill.cs
- DataGridAutoFormatDialog.cs
- UpdateTranslator.cs
- RSAProtectedConfigurationProvider.cs
- ExpressionEvaluator.cs
- SystemResources.cs
- UpdatePanelControlTrigger.cs
- EdmSchemaAttribute.cs
- ParallelEnumerableWrapper.cs
- RemoteWebConfigurationHostStream.cs
- WeakRefEnumerator.cs
- HelpFileFileNameEditor.cs
- WindowsListViewSubItem.cs
- ConnectionManagementSection.cs
- DispatchWrapper.cs
- ReceiveContent.cs
- xsdvalidator.cs
- CorrelationKey.cs
- ScrollBar.cs
- PrintPreviewControl.cs
- SendActivityDesigner.cs
- SizeAnimation.cs
- DataGridItemAutomationPeer.cs
- UrlMappingsModule.cs
- MailHeaderInfo.cs
- Gdiplus.cs
- ResourceProperty.cs
- StringConcat.cs
- NetworkAddressChange.cs
- SiteMapPath.cs
- CodeChecksumPragma.cs
- CodeArrayIndexerExpression.cs
- PhysicalFontFamily.cs
- ProcessModule.cs
- SqlUDTStorage.cs
- XmlImplementation.cs
- FakeModelPropertyImpl.cs
- HostingPreferredMapPath.cs
- ConsoleEntryPoint.cs
- ToolStripGripRenderEventArgs.cs
- ToolStripManager.cs
- DatePickerDateValidationErrorEventArgs.cs
- MouseGestureConverter.cs
- CellPartitioner.cs
- EventsTab.cs
- HitTestResult.cs
- CodeAccessSecurityEngine.cs
- shaper.cs
- DnsPermission.cs
- UriExt.cs
- FastEncoderWindow.cs
- URLIdentityPermission.cs
- RemotingConfiguration.cs
- httpapplicationstate.cs
- TemplateControlParser.cs
- CookieHandler.cs
- userdatakeys.cs
- QualifiedCellIdBoolean.cs
- CompiledRegexRunnerFactory.cs
- EditingCoordinator.cs
- ClientScriptItem.cs
- FailedToStartupUIException.cs
- DictionaryEntry.cs
- HttpProcessUtility.cs
- _FixedSizeReader.cs
- ParenthesizePropertyNameAttribute.cs
- NotifyParentPropertyAttribute.cs
- Utilities.cs
- DataControlField.cs
- DynamicAttribute.cs
- EmbeddedMailObject.cs
- MenuAutomationPeer.cs
- CopyOfAction.cs
- TagNameToTypeMapper.cs
- ProgressBar.cs
- ButtonColumn.cs
- Keywords.cs
- ViewKeyConstraint.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- NameTable.cs
- StreamReader.cs
- XmlBaseWriter.cs
- CombinedGeometry.cs
- KeyboardNavigation.cs
- RMEnrollmentPage3.cs
- HandledEventArgs.cs
- DeflateEmulationStream.cs
- JpegBitmapEncoder.cs
- FixedTextSelectionProcessor.cs
- FontDialog.cs
- ParserHooks.cs
- DataGridViewComboBoxEditingControl.cs
- RequestCacheValidator.cs
- JsonDataContract.cs
- Stacktrace.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- clipboard.cs
- StylusDevice.cs
- SoapHeaderException.cs