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
- EntityCommandExecutionException.cs
- PageThemeParser.cs
- SiteMembershipCondition.cs
- HttpChannelBindingToken.cs
- Animatable.cs
- Selection.cs
- SimpleHandlerBuildProvider.cs
- DocumentViewerBaseAutomationPeer.cs
- ForAllOperator.cs
- activationcontext.cs
- DataServiceContext.cs
- SettingsProviderCollection.cs
- BaseDataListPage.cs
- XmlSchemaCompilationSettings.cs
- CollectionView.cs
- ServiceReflector.cs
- Point.cs
- CLSCompliantAttribute.cs
- GridView.cs
- ItemContainerGenerator.cs
- StringComparer.cs
- MetaData.cs
- HttpCookiesSection.cs
- TransformerInfo.cs
- GridView.cs
- AddInDeploymentState.cs
- LineServicesRun.cs
- EntityWrapper.cs
- DragCompletedEventArgs.cs
- RTLAwareMessageBox.cs
- StrongNameIdentityPermission.cs
- DependencyPropertyValueSerializer.cs
- ViewStateException.cs
- DataGridItem.cs
- EventToken.cs
- ComponentDispatcherThread.cs
- SettingsPropertyNotFoundException.cs
- DependencyPropertyConverter.cs
- SchemaManager.cs
- FormClosingEvent.cs
- _LoggingObject.cs
- DocumentGridContextMenu.cs
- ISO2022Encoding.cs
- EventLogEntryCollection.cs
- ProtocolElementCollection.cs
- InputLanguage.cs
- RawStylusInputCustomDataList.cs
- PresentationAppDomainManager.cs
- AddInStore.cs
- SettingsPropertyIsReadOnlyException.cs
- GenericUriParser.cs
- ListViewContainer.cs
- StateBag.cs
- IisTraceWebEventProvider.cs
- WebReferencesBuildProvider.cs
- ConstraintStruct.cs
- GetPolicyDetailsRequest.cs
- StylusPoint.cs
- BitmapCache.cs
- DbConvert.cs
- LazyTextWriterCreator.cs
- SHA384.cs
- BufferedGraphics.cs
- HostingPreferredMapPath.cs
- InputReportEventArgs.cs
- ActivityBuilder.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- StreamUpdate.cs
- TraceUtils.cs
- UnmanagedBitmapWrapper.cs
- ConditionalAttribute.cs
- WSSecurityXXX2005.cs
- MenuItemCollection.cs
- BindableAttribute.cs
- arc.cs
- RtType.cs
- ProbeDuplexCD1AsyncResult.cs
- UserPrincipalNameElement.cs
- TypeDelegator.cs
- TextViewBase.cs
- UndoEngine.cs
- SafeFindHandle.cs
- Header.cs
- CompoundFileIOPermission.cs
- HttpCachePolicyBase.cs
- SoapExtensionStream.cs
- Win32MouseDevice.cs
- ConfigXmlCDataSection.cs
- DynamicPropertyHolder.cs
- ButtonColumn.cs
- CalloutQueueItem.cs
- SynchronizationContext.cs
- XmlQueryTypeFactory.cs
- CompilerParameters.cs
- SqlDataSourceCommandEventArgs.cs
- AssertUtility.cs
- propertyentry.cs
- QueryValue.cs
- FixedTextBuilder.cs
- BasicViewGenerator.cs