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
- CompositionAdorner.cs
- DynamicMethod.cs
- UIPermission.cs
- InputLanguage.cs
- ExpressionParser.cs
- AudioFormatConverter.cs
- ListBindingConverter.cs
- ImageSourceTypeConverter.cs
- DataObject.cs
- Console.cs
- TaiwanLunisolarCalendar.cs
- XamlTreeBuilderBamlRecordWriter.cs
- XmlAttributeHolder.cs
- ContractMapping.cs
- CornerRadiusConverter.cs
- XmlSchemaElement.cs
- TableRow.cs
- RangeValueProviderWrapper.cs
- SrgsDocumentParser.cs
- XamlRtfConverter.cs
- DefaultBinder.cs
- FileChangesMonitor.cs
- GridEntryCollection.cs
- Cursor.cs
- SQLDouble.cs
- CodeDelegateInvokeExpression.cs
- Margins.cs
- WebPartMenu.cs
- QfeChecker.cs
- SqlXmlStorage.cs
- TextTreeUndoUnit.cs
- DataTemplate.cs
- TraceContext.cs
- CLSCompliantAttribute.cs
- DropDownList.cs
- HScrollBar.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- Cursor.cs
- WebPartDesigner.cs
- CachedTypeface.cs
- HatchBrush.cs
- SQLDecimalStorage.cs
- ScrollChrome.cs
- DbReferenceCollection.cs
- OdbcFactory.cs
- TextRange.cs
- ButtonFieldBase.cs
- AstNode.cs
- ImageCodecInfo.cs
- SymLanguageType.cs
- LoginUtil.cs
- Operators.cs
- DataServiceKeyAttribute.cs
- InputBuffer.cs
- Panel.cs
- Stream.cs
- WebPart.cs
- Int32Rect.cs
- AttributeConverter.cs
- Border.cs
- DataServiceContext.cs
- MULTI_QI.cs
- ArgumentValidation.cs
- Int32KeyFrameCollection.cs
- FullTextState.cs
- SHA256Cng.cs
- SoapFault.cs
- DataSourceCache.cs
- FullTextState.cs
- TimeSpanConverter.cs
- OdbcTransaction.cs
- PngBitmapDecoder.cs
- EndPoint.cs
- Models.cs
- selecteditemcollection.cs
- DeferredElementTreeState.cs
- DataSourceControlBuilder.cs
- StreamUpgradeAcceptor.cs
- DbProviderSpecificTypePropertyAttribute.cs
- DataReceivedEventArgs.cs
- DataView.cs
- SiteOfOriginContainer.cs
- OraclePermissionAttribute.cs
- TreeNodeStyleCollection.cs
- AdPostCacheSubstitution.cs
- StatusBarDrawItemEvent.cs
- EditorResources.cs
- SecurityCriticalDataForSet.cs
- ImageIndexEditor.cs
- ToolStripGripRenderEventArgs.cs
- MeasureItemEvent.cs
- SpinWait.cs
- CrossContextChannel.cs
- ListViewItemSelectionChangedEvent.cs
- ResXResourceReader.cs
- BaseProcessor.cs
- XmlCharacterData.cs
- SHA512Managed.cs
- FixedSOMLineCollection.cs
- CacheEntry.cs