<Type Name="Comparer" FullName="System.Collections.Comparer" FullNameSP="System_Collections_Comparer" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class public sealed serializable Comparer extends System.Object implements System.Collections.IComparer" />
  <TypeSignature Language="C#" Value="public sealed class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable" />
  <MemberOfLibrary>BCL</MemberOfLibrary>
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>System.Collections.IComparer</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>System.Runtime.Serialization.ISerializable</InterfaceName>
    </Interface>
  </Interfaces>
  <Docs>
    <summary>
      <para>Provides the default implementation of the <see cref="T:System.Collections.IComparer" />
interface.</para>
    </summary>
    <remarks>To be added.</remarks>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Comparer (System.Globalization.CultureInfo culture);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="culture" Type="System.Globalization.CultureInfo" />
      </Parameters>
      <Docs>
        <param name="culture">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Compare">
      <MemberSignature Language="ILASM" Value=".method public final hidebysig virtual int32 Compare(object a, object b)" />
      <MemberSignature Language="C#" Value="public int Compare (object a, object b);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="a" Type="System.Object" />
        <Parameter Name="b" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="a">The first <see cref="T:System.Object" /> to compare.</param>
        <param name="b">The second <see cref="T:System.Object" /> to compare.</param>
        <param name="a">To be added.</param>
        <summary>
          <para>Returns the sort order of two <see cref="T:System.Object" /> instances.</para>
        </summary>
        <returns>
          <para>The return value is a negative number, zero, or a positive number reflecting the sort order of <paramref name="a" /> as compared to <paramref name="b" />. For non-zero return values, the exact value returned by this method is unspecified. The following table defines the return value:</para>
          <list type="table">
            <listheader>
              <term>Value</term>
              <description>Condition</description>
            </listheader>
            <item>
              <term> A negative number</term>
              <description>
                <paramref name="a " />&lt;
      <paramref name="b." /></description>
            </item>
            <item>
              <term> Zero</term>
              <description>
                <paramref name="a " />==
<paramref name="b." /></description>
            </item>
            <item>
              <term> A positive number</term>
              <description>
                <paramref name="a " />&gt;
<paramref name="b." /></description>
            </item>
          </list>
          <para>
            <block subset="none" type="note">A null reference is considered to
   compare less than any other non-null object, and equal to any other null
   reference, independent of the underlying <see cref="T:System.Type" /> of either object.</block>
          </para>
        </returns>
        <remarks>
          <para>The behavior of this method is as follows:</para>
          <list type="bullet">
            <item>
              <term>
                <para> If <paramref name="a" /> implements the <see cref="T:System.IComparable" />
   interface, returns
   <paramref name="a" />.CompareTo(<paramref name="b" />).</para>
              </term>
            </item>
            <item>
              <term>
                <para> If <paramref name="a" /> does not
   implement the <see cref="T:System.IComparable" /> interface but <paramref name="b" />
   does, returns the negated result of <paramref name="b" />.CompareTo(<paramref name="a" />).</para>
              </term>
            </item>
            <item>
              <term>
                <para>If <paramref name="a" /> and <paramref name="b" /> both are not
   <see langword="null" /> and do not implement the <see cref="T:System.IComparable" /> interface, <see cref="T:System.ArgumentException" /> is
   thrown.</para>
              </term>
            </item>
          </list>
        </remarks>
        <exception cref="T:System.ArgumentException">
          <para>Both <paramref name="a" /> and <paramref name="b" /> are not <see langword="null" /> and do not implement the <see cref="T:System.IComparable" /> interface.</para>
          <para> -or-</para>
          <para>Both <paramref name="a" /> and <paramref name="b" /> are not <see langword="null" /> and are not assignment-compatible types.</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Default">
      <MemberSignature Language="ILASM" Value=".field public static initOnly class System.Collections.Comparer Default" />
      <MemberSignature Language="C#" Value="public static readonly System.Collections.Comparer Default;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.Comparer</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns a new <see cref="T:System.Collections.Comparer" /> instance containing the default implementation of the <see cref="T:System.Collections.IComparer" /> 
interface. </para>
        </summary>
        <remarks>
          <para>This field is read-only.</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="DefaultInvariant">
      <MemberSignature Language="C#" Value="public static readonly System.Collections.Comparer DefaultInvariant;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.Comparer</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetObjectData">
      <MemberSignature Language="C#" Value="public void GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="info" Type="System.Runtime.Serialization.SerializationInfo" />
        <Parameter Name="context" Type="System.Runtime.Serialization.StreamingContext" />
      </Parameters>
      <Docs>
        <param name="info">To be added.</param>
        <param name="context">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
</Type>
