Code:
/ 4.0 / 4.0 / 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. // ==++== // // 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
- odbcmetadatafactory.cs
- _CommandStream.cs
- ComponentManagerBroker.cs
- ExpressionLink.cs
- EpmSyndicationContentSerializer.cs
- AssemblyCache.cs
- GeometryCombineModeValidation.cs
- ErrorFormatterPage.cs
- Enumerable.cs
- DataGridViewComboBoxCell.cs
- CngUIPolicy.cs
- FixedSOMPageConstructor.cs
- DataBoundLiteralControl.cs
- TextEncodedRawTextWriter.cs
- mediaeventargs.cs
- DateTimeOffsetStorage.cs
- ObjectDataSourceView.cs
- LongAverageAggregationOperator.cs
- BitmapEffectInput.cs
- AdjustableArrowCap.cs
- DataListItemCollection.cs
- PanelDesigner.cs
- SqlBulkCopyColumnMapping.cs
- CompleteWizardStep.cs
- OdbcHandle.cs
- sitestring.cs
- WizardStepBase.cs
- TrackingProfileDeserializationException.cs
- PopupControlService.cs
- ComPlusInstanceProvider.cs
- StringWriter.cs
- BrowserCapabilitiesFactoryBase.cs
- Rect3DValueSerializer.cs
- RangeValidator.cs
- CheckBoxFlatAdapter.cs
- SecurityElementBase.cs
- XmlWrappingWriter.cs
- XmlUtf8RawTextWriter.cs
- Win32PrintDialog.cs
- MILUtilities.cs
- BuildProvider.cs
- DictionaryKeyPropertyAttribute.cs
- ValueSerializerAttribute.cs
- OdbcConnectionStringbuilder.cs
- QilLiteral.cs
- ParameterCollection.cs
- ServerValidateEventArgs.cs
- DataGridColumn.cs
- Border.cs
- DataTableTypeConverter.cs
- SQlBooleanStorage.cs
- ConnectionStringSettings.cs
- XamlToRtfWriter.cs
- QuaternionAnimationUsingKeyFrames.cs
- FigureParagraph.cs
- SessionStateSection.cs
- ExtensionFile.cs
- DataTableReaderListener.cs
- Contracts.cs
- EntityDataSourceEntitySetNameItem.cs
- SettingsBindableAttribute.cs
- FolderLevelBuildProviderCollection.cs
- ConstructorNeedsTagAttribute.cs
- WindowsImpersonationContext.cs
- Token.cs
- DbCommandDefinition.cs
- BufferedOutputAsyncStream.cs
- TableColumn.cs
- Vector3DCollectionValueSerializer.cs
- SvcMapFileLoader.cs
- TextDecorationCollectionConverter.cs
- RoleService.cs
- SelectionItemProviderWrapper.cs
- SignerInfo.cs
- Events.cs
- PropagatorResult.cs
- NameValuePermission.cs
- GridViewDeleteEventArgs.cs
- ValuePattern.cs
- ColumnReorderedEventArgs.cs
- XXXInfos.cs
- XmlLanguage.cs
- BinaryWriter.cs
- _DigestClient.cs
- WebPartEditorCancelVerb.cs
- Viewport3DAutomationPeer.cs
- XmlSchemaImporter.cs
- BaseParaClient.cs
- DefinitionBase.cs
- OperandQuery.cs
- RightsManagementSuppressedStream.cs
- AuthorizationRuleCollection.cs
- Int32RectConverter.cs
- UserNamePasswordValidationMode.cs
- ConfigurationSectionGroup.cs
- Misc.cs
- BitmapEffectvisualstate.cs
- WindowsButton.cs
- ApplicationSecurityInfo.cs
- ExpressionBinding.cs