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
- HtmlInputSubmit.cs
- thaishape.cs
- ObjectComplexPropertyMapping.cs
- Reference.cs
- ReflectionHelper.cs
- BaseValidatorDesigner.cs
- BindingCompleteEventArgs.cs
- DependencyObjectCodeDomSerializer.cs
- ThreadAttributes.cs
- LeafCellTreeNode.cs
- StreamGeometryContext.cs
- DataGridTextBox.cs
- ExceptionUtil.cs
- XmlLinkedNode.cs
- HelpKeywordAttribute.cs
- OptimalTextSource.cs
- CopyCodeAction.cs
- ConstraintStruct.cs
- SkinBuilder.cs
- TraceInternal.cs
- DSASignatureFormatter.cs
- ISAPIWorkerRequest.cs
- XhtmlBasicLiteralTextAdapter.cs
- BuildDependencySet.cs
- WebProxyScriptElement.cs
- PowerStatus.cs
- ObjectNavigationPropertyMapping.cs
- ContextBase.cs
- ScrollPattern.cs
- ValidationErrorCollection.cs
- ToolStripKeyboardHandlingService.cs
- DBConnection.cs
- TreeView.cs
- InheritanceContextHelper.cs
- StreamResourceInfo.cs
- ObjectDataSourceMethodEventArgs.cs
- NetStream.cs
- SubstitutionResponseElement.cs
- ProjectionPath.cs
- IPAddressCollection.cs
- Ray3DHitTestResult.cs
- RSAOAEPKeyExchangeDeformatter.cs
- PathGeometry.cs
- GeneralTransformGroup.cs
- UnknownMessageReceivedEventArgs.cs
- X509ChainPolicy.cs
- RightsManagementEncryptionTransform.cs
- SqlNotificationRequest.cs
- ButtonPopupAdapter.cs
- XmlCharacterData.cs
- LocatorGroup.cs
- WebSysDescriptionAttribute.cs
- Transform3D.cs
- XamlPoint3DCollectionSerializer.cs
- ArrayWithOffset.cs
- VoiceChangeEventArgs.cs
- smtppermission.cs
- XsltLibrary.cs
- XPathPatternParser.cs
- XMLSyntaxException.cs
- sqlstateclientmanager.cs
- AssemblyCache.cs
- ExpanderAutomationPeer.cs
- BaseTemplateParser.cs
- Hashtable.cs
- BooleanSwitch.cs
- TrackBarRenderer.cs
- AnnotationResourceChangedEventArgs.cs
- MDIControlStrip.cs
- CursorConverter.cs
- ScrollChrome.cs
- DataGridSortCommandEventArgs.cs
- ReadOnlyDataSourceView.cs
- EventSetter.cs
- ProvidersHelper.cs
- PriorityBindingExpression.cs
- PropertyMap.cs
- Point.cs
- _SafeNetHandles.cs
- ImageDrawing.cs
- DataGridGeneralPage.cs
- __FastResourceComparer.cs
- ContentOperations.cs
- CalendarButton.cs
- VisualStyleRenderer.cs
- DesignerAttributeInfo.cs
- DataSourceXmlAttributeAttribute.cs
- RawTextInputReport.cs
- CodeObject.cs
- ProxyWebPartConnectionCollection.cs
- InplaceBitmapMetadataWriter.cs
- DataGridViewSelectedColumnCollection.cs
- SafeHandles.cs
- ExpandedWrapper.cs
- _TLSstream.cs
- SQLInt64Storage.cs
- DataGridHeaderBorder.cs
- IssuanceTokenProviderBase.cs
- MemoryFailPoint.cs
- AlphabetConverter.cs