Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / Collections / CompatibleComparer.cs / 1 / CompatibleComparer.cs
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"); } 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. // Copyright (c) Microsoft Corporation. All rights reserved. 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"); } 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ListParagraph.cs
- StorageTypeMapping.cs
- SplineQuaternionKeyFrame.cs
- Brush.cs
- Thumb.cs
- XmlObjectSerializerReadContextComplex.cs
- ApplicationProxyInternal.cs
- Triplet.cs
- xsdvalidator.cs
- CellConstant.cs
- InvalidDataException.cs
- DesignerAdapterUtil.cs
- XPathNodeIterator.cs
- PropertyChangedEventArgs.cs
- DataBindingHandlerAttribute.cs
- DataControlField.cs
- CheckBox.cs
- SplitterCancelEvent.cs
- StorageBasedPackageProperties.cs
- PrintingPermission.cs
- StringUtil.cs
- CodeCompileUnit.cs
- FileDialogPermission.cs
- FixedSOMFixedBlock.cs
- SchemaSetCompiler.cs
- ConfigXmlComment.cs
- ExternalDataExchangeClient.cs
- NamespaceInfo.cs
- SerializableAttribute.cs
- SingleKeyFrameCollection.cs
- DefaultShape.cs
- XamlStyleSerializer.cs
- cookie.cs
- ViewSimplifier.cs
- FixedDocumentPaginator.cs
- ManagedWndProcTracker.cs
- EventLogInternal.cs
- SapiRecognizer.cs
- HttpBrowserCapabilitiesBase.cs
- ExtendedProtectionPolicyTypeConverter.cs
- TreeNodeEventArgs.cs
- HandleCollector.cs
- SortQuery.cs
- DataTableCollection.cs
- JoinTreeNode.cs
- MouseCaptureWithinProperty.cs
- Translator.cs
- ReferenceEqualityComparer.cs
- TaskFormBase.cs
- CoTaskMemUnicodeSafeHandle.cs
- AppDomainProtocolHandler.cs
- log.cs
- DetailsViewDeletedEventArgs.cs
- XmlEncoding.cs
- CqlErrorHelper.cs
- pingexception.cs
- SystemWebSectionGroup.cs
- PrintPageEvent.cs
- UrlMappingsModule.cs
- LineSegment.cs
- WebPartActionVerb.cs
- LinearGradientBrush.cs
- ArgumentValidation.cs
- XdrBuilder.cs
- CachedTypeface.cs
- RelationalExpressions.cs
- RenderContext.cs
- ScriptRegistrationManager.cs
- DeviceContext.cs
- SqlMethodTransformer.cs
- ModifiableIteratorCollection.cs
- GetPageNumberCompletedEventArgs.cs
- FixedStringLookup.cs
- sqlinternaltransaction.cs
- DomainConstraint.cs
- ResourceKey.cs
- StorageMappingFragment.cs
- BooleanToVisibilityConverter.cs
- DeviceSpecificChoiceCollection.cs
- SafeCryptContextHandle.cs
- PriorityBindingExpression.cs
- MetadataSerializer.cs
- RegexWorker.cs
- BrowserCapabilitiesCompiler.cs
- NameSpaceEvent.cs
- BitmapEffect.cs
- NamespaceQuery.cs
- XPathDocumentIterator.cs
- WindowsToolbarItemAsMenuItem.cs
- WebCategoryAttribute.cs
- DefaultPropertiesToSend.cs
- ControlIdConverter.cs
- WebPartMinimizeVerb.cs
- MenuCommands.cs
- ExternalCalls.cs
- IsolatedStorageSecurityState.cs
- PersonalizableAttribute.cs
- UserNameSecurityTokenProvider.cs
- Processor.cs
- BinaryWriter.cs