Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- TextSelectionHelper.cs
- UrlMapping.cs
- ToolStripScrollButton.cs
- SafeNativeMethods.cs
- DataRelationCollection.cs
- StrongNameUtility.cs
- TextEditorThreadLocalStore.cs
- PropertyTabAttribute.cs
- MappingSource.cs
- PKCS1MaskGenerationMethod.cs
- ToolStripGrip.cs
- EFAssociationProvider.cs
- SynchronizedDispatch.cs
- SoapException.cs
- TreeNode.cs
- HandledMouseEvent.cs
- Literal.cs
- MultipleViewPattern.cs
- ErrorRuntimeConfig.cs
- RadioButton.cs
- ConfigXmlReader.cs
- PeerNeighborManager.cs
- ManifestSignatureInformation.cs
- ConfigPathUtility.cs
- SqlUtils.cs
- PublisherMembershipCondition.cs
- SizeF.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- KeyProperty.cs
- WeakEventManager.cs
- RemoveStoryboard.cs
- GlobalizationAssembly.cs
- DisposableCollectionWrapper.cs
- GroupItemAutomationPeer.cs
- DataGridViewCellConverter.cs
- TimelineGroup.cs
- SessionIDManager.cs
- PopupEventArgs.cs
- SqlConnectionFactory.cs
- SystemWebExtensionsSectionGroup.cs
- ClockController.cs
- ReflectionUtil.cs
- TypeSource.cs
- WebDisplayNameAttribute.cs
- DataSourceCollectionBase.cs
- TransferMode.cs
- EdmComplexTypeAttribute.cs
- autovalidator.cs
- SqlDataSourceCommandEventArgs.cs
- ButtonChrome.cs
- BindingExpression.cs
- SqlClientMetaDataCollectionNames.cs
- ParameterToken.cs
- ChildDocumentBlock.cs
- ParserHooks.cs
- DigitShape.cs
- FormViewPageEventArgs.cs
- SendActivityDesignerTheme.cs
- PageThemeCodeDomTreeGenerator.cs
- HtmlInputControl.cs
- EnumUnknown.cs
- NativeMethods.cs
- XmlIlVisitor.cs
- HtmlAnchor.cs
- DbMetaDataCollectionNames.cs
- DocumentCollection.cs
- TraceHelpers.cs
- SymLanguageVendor.cs
- EndOfStreamException.cs
- Stacktrace.cs
- FieldTemplateFactory.cs
- BamlRecordReader.cs
- ResXResourceSet.cs
- DrawingAttributes.cs
- WebPartHelpVerb.cs
- Cursor.cs
- ListBindingHelper.cs
- SpStreamWrapper.cs
- NextPreviousPagerField.cs
- DataServiceClientException.cs
- Rotation3D.cs
- CompoundFileStorageReference.cs
- safemediahandle.cs
- ListViewItemEventArgs.cs
- HierarchicalDataSourceControl.cs
- HostedHttpTransportManager.cs
- ScrollEventArgs.cs
- ListViewTableCell.cs
- SystemMulticastIPAddressInformation.cs
- SQLInt32.cs
- XmlHierarchicalEnumerable.cs
- SSmlParser.cs
- PageRequestManager.cs
- ReadWriteSpinLock.cs
- DataControlFieldCell.cs
- ConfigUtil.cs
- Oid.cs
- Classification.cs
- DataGridCellEditEndingEventArgs.cs
- SchemaTableOptionalColumn.cs