Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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 } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StandardCommandToolStripMenuItem.cs
- Events.cs
- PasswordTextNavigator.cs
- XmlUtf8RawTextWriter.cs
- ClientConvert.cs
- PolyBezierSegment.cs
- XsltOutput.cs
- sqlstateclientmanager.cs
- UriExt.cs
- WindowsListBox.cs
- TableLayoutCellPaintEventArgs.cs
- DbSourceCommand.cs
- RegexNode.cs
- ConnectionPointGlyph.cs
- ToolStripLocationCancelEventArgs.cs
- ReflectEventDescriptor.cs
- WebBrowsableAttribute.cs
- AutoSizeToolBoxItem.cs
- Base64Stream.cs
- Cursor.cs
- GacUtil.cs
- TrackingStringDictionary.cs
- ADRoleFactory.cs
- RuntimeConfig.cs
- ObjectDataSourceView.cs
- Matrix3D.cs
- DesignerUtility.cs
- NavigationWindowAutomationPeer.cs
- BinaryNode.cs
- LoginStatusDesigner.cs
- MouseButtonEventArgs.cs
- MaskedTextProvider.cs
- FrameworkElementAutomationPeer.cs
- SmiXetterAccessMap.cs
- TargetInvocationException.cs
- Rijndael.cs
- SqlDataSourceCustomCommandEditor.cs
- NonClientArea.cs
- TextBounds.cs
- DesignerCapabilities.cs
- AssemblyHash.cs
- SelectiveScrollingGrid.cs
- GPPOINTF.cs
- RSAOAEPKeyExchangeDeformatter.cs
- RowSpanVector.cs
- EntityCommand.cs
- DataColumnSelectionConverter.cs
- SmtpFailedRecipientException.cs
- PrintControllerWithStatusDialog.cs
- CreatingCookieEventArgs.cs
- DataGridParentRows.cs
- ContextMenuStripGroup.cs
- PerformanceCounterManager.cs
- QueryAccessibilityHelpEvent.cs
- RichTextBox.cs
- ImpersonationContext.cs
- ViewLoader.cs
- SafeMarshalContext.cs
- DataPagerFieldCommandEventArgs.cs
- ResizeGrip.cs
- DataGridViewCellEventArgs.cs
- NativeMethods.cs
- ListView.cs
- ImageFormatConverter.cs
- InvalidCastException.cs
- Comparer.cs
- RequestCachingSection.cs
- MessagePartDescription.cs
- WCFServiceClientProxyGenerator.cs
- linebase.cs
- TableRowCollection.cs
- PrintEvent.cs
- CounterSampleCalculator.cs
- XmlSchemaImporter.cs
- arabicshape.cs
- Focus.cs
- BlockUIContainer.cs
- SingleAnimation.cs
- ConditionValidator.cs
- LocationReference.cs
- DATA_BLOB.cs
- TableCell.cs
- DataReceivedEventArgs.cs
- CatalogPartCollection.cs
- PageAsyncTaskManager.cs
- WindowPattern.cs
- Knowncolors.cs
- EventArgs.cs
- XmlAnyAttributeAttribute.cs
- TcpTransportBindingElement.cs
- EntityContainerEmitter.cs
- TextContainerChangedEventArgs.cs
- StrongNameIdentityPermission.cs
- XmlSchemaValidator.cs
- StatusBarDrawItemEvent.cs
- HitTestParameters.cs
- _SslSessionsCache.cs
- CodeMemberEvent.cs
- DataGridViewAdvancedBorderStyle.cs
- ISAPIApplicationHost.cs