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
- ReachFixedPageSerializerAsync.cs
- Unit.cs
- XmlSchema.cs
- BaseTemplateParser.cs
- BufferModesCollection.cs
- HwndMouseInputProvider.cs
- GlobalizationSection.cs
- FlowNode.cs
- HttpWrapper.cs
- PropertyItem.cs
- RijndaelManaged.cs
- TransactionFlowBindingElement.cs
- ResourceSet.cs
- VirtualPathProvider.cs
- ReadOnlyTernaryTree.cs
- CodeDOMUtility.cs
- DisposableCollectionWrapper.cs
- ItemTypeToolStripMenuItem.cs
- GCHandleCookieTable.cs
- SizeChangedEventArgs.cs
- DataGridViewRowHeaderCell.cs
- TriggerAction.cs
- DynamicPropertyHolder.cs
- TransactionFilter.cs
- RunInstallerAttribute.cs
- SystemResources.cs
- TemplatePagerField.cs
- SchemaElement.cs
- InvokeSchedule.cs
- Root.cs
- Emitter.cs
- XmlUtf8RawTextWriter.cs
- OneOfTypeConst.cs
- InputLanguage.cs
- MergeFilterQuery.cs
- ListItemConverter.cs
- FileFormatException.cs
- SendContent.cs
- UserThread.cs
- Types.cs
- FontConverter.cs
- loginstatus.cs
- IndentedWriter.cs
- StyleBamlTreeBuilder.cs
- SafeLocalAllocation.cs
- HttpWriter.cs
- ContainerControl.cs
- SiteMapNodeCollection.cs
- FtpRequestCacheValidator.cs
- PropertyDescriptors.cs
- TraceHwndHost.cs
- TransformPattern.cs
- FloaterBaseParaClient.cs
- MonthChangedEventArgs.cs
- RawStylusInputCustomData.cs
- NopReturnReader.cs
- PathGeometry.cs
- StretchValidation.cs
- LocationUpdates.cs
- AspNetSynchronizationContext.cs
- DoubleLink.cs
- LinkUtilities.cs
- CompilationSection.cs
- TextSpan.cs
- DataGridViewCellStyleConverter.cs
- ManagementOptions.cs
- XsltLibrary.cs
- PrimitiveType.cs
- FilteredReadOnlyMetadataCollection.cs
- TreeNodeCollection.cs
- ObjectDataSourceSelectingEventArgs.cs
- MultiAsyncResult.cs
- DtcInterfaces.cs
- UrlUtility.cs
- XmlValueConverter.cs
- LogicalExpr.cs
- UTF8Encoding.cs
- PersonalizationProviderHelper.cs
- BulletChrome.cs
- XmlIgnoreAttribute.cs
- WindowsFormsSynchronizationContext.cs
- Stylus.cs
- GAC.cs
- webeventbuffer.cs
- CodeComment.cs
- DataFieldCollectionEditor.cs
- RevocationPoint.cs
- DefaultValueConverter.cs
- DeclaredTypeValidatorAttribute.cs
- WebPartsPersonalization.cs
- RemotingSurrogateSelector.cs
- httpstaticobjectscollection.cs
- Group.cs
- TabControl.cs
- InvokeGenerator.cs
- ResourceSet.cs
- WebExceptionStatus.cs
- TraceEventCache.cs
- OdbcConnectionOpen.cs
- StylusDevice.cs