Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / StructuralComparisons.cs / 1305376 / StructuralComparisons.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // using System; namespace System.Collections { public static class StructuralComparisons { private static IComparer s_StructuralComparer; private static IEqualityComparer s_StructuralEqualityComparer; public static IComparer StructuralComparer { get { IComparer comparer = s_StructuralComparer; if (comparer == null) { comparer = new StructuralComparer(); s_StructuralComparer = comparer; } return comparer; } } public static IEqualityComparer StructuralEqualityComparer { get { IEqualityComparer comparer = s_StructuralEqualityComparer; if (comparer == null) { comparer = new StructuralEqualityComparer(); s_StructuralEqualityComparer = comparer; } return comparer; } } } [Serializable] internal class StructuralEqualityComparer : IEqualityComparer { public new bool Equals(Object x, Object y) { if (x != null) { IStructuralEquatable seObj = x as IStructuralEquatable; if (seObj != null){ return seObj.Equals(y, this); } if (y != null) { return x.Equals(y); } else { return false; } } if (y != null) return false; return true; } public int GetHashCode(Object obj) { if (obj == null) return 0; IStructuralEquatable seObj = obj as IStructuralEquatable; if (seObj != null) { return seObj.GetHashCode(this); } return obj.GetHashCode(); } } [Serializable] internal class StructuralComparer : IComparer { public int Compare(Object x, Object y) { if (x == null) return y == null ? 0 : -1; if (y == null) return 1; IStructuralComparable scX = x as IStructuralComparable; if (scX != null) { return scX.CompareTo(y, this); } return Comparer.Default.Compare(x, y); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RadioButtonStandardAdapter.cs
- codemethodreferenceexpression.cs
- IndentedWriter.cs
- SerTrace.cs
- controlskin.cs
- ServicePoint.cs
- _RequestCacheProtocol.cs
- localization.cs
- ElapsedEventArgs.cs
- NextPreviousPagerField.cs
- XmlSchemaSubstitutionGroup.cs
- TaskFormBase.cs
- TreeViewItemAutomationPeer.cs
- StreamFormatter.cs
- ManipulationStartingEventArgs.cs
- IdentifierService.cs
- DesignerUtility.cs
- HttpListenerRequestTraceRecord.cs
- ClientUrlResolverWrapper.cs
- documentsequencetextpointer.cs
- XmlText.cs
- TypeElement.cs
- BuilderInfo.cs
- Size3D.cs
- DeferredSelectedIndexReference.cs
- NetTcpSecurity.cs
- WindowsListViewGroupHelper.cs
- InitializerFacet.cs
- Highlights.cs
- DataListCommandEventArgs.cs
- Throw.cs
- IndexedString.cs
- PrtCap_Reader.cs
- CodeCatchClauseCollection.cs
- SqlWorkflowInstanceStore.cs
- TemplatedWizardStep.cs
- Aggregates.cs
- XmlImplementation.cs
- RemoteWebConfigurationHost.cs
- HandleRef.cs
- ResourceDisplayNameAttribute.cs
- XPathNodeIterator.cs
- SqlRetyper.cs
- ViewService.cs
- SByte.cs
- KerberosTicketHashIdentifierClause.cs
- EvidenceTypeDescriptor.cs
- MarshalDirectiveException.cs
- HTMLTextWriter.cs
- SortedDictionary.cs
- NativeWindow.cs
- ValueSerializerAttribute.cs
- SoapConverter.cs
- ProviderSettings.cs
- LinqDataSourceDeleteEventArgs.cs
- IdentityReference.cs
- InternalMappingException.cs
- _BufferOffsetSize.cs
- TypeExtensions.cs
- _LazyAsyncResult.cs
- HtmlContainerControl.cs
- DataControlButton.cs
- ObjectDataSourceSelectingEventArgs.cs
- NumericUpDownAccelerationCollection.cs
- WindowShowOrOpenTracker.cs
- InProcStateClientManager.cs
- CommonServiceBehaviorElement.cs
- Label.cs
- RootProfilePropertySettingsCollection.cs
- UserControl.cs
- CompositeControlDesigner.cs
- StringFreezingAttribute.cs
- ModelEditingScope.cs
- CursorConverter.cs
- VirtualDirectoryMappingCollection.cs
- SocketException.cs
- DirectoryLocalQuery.cs
- PriorityBindingExpression.cs
- Soap.cs
- regiisutil.cs
- MailWriter.cs
- HttpCookiesSection.cs
- GradientStop.cs
- SamlAdvice.cs
- FixedSOMTableCell.cs
- ArgIterator.cs
- InputElement.cs
- FieldToken.cs
- DataGridViewTextBoxCell.cs
- SafeMILHandleMemoryPressure.cs
- HttpGetClientProtocol.cs
- EmissiveMaterial.cs
- parserscommon.cs
- securestring.cs
- HitTestParameters.cs
- ContextMarshalException.cs
- PathFigureCollection.cs
- LocalizedNameDescriptionPair.cs
- FamilyTypefaceCollection.cs
- PassportAuthentication.cs