<Type Name="ArgumentException" FullName="System.ArgumentException" FullNameSP="System_ArgumentException" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class public serializable ArgumentException extends System.SystemException" />
  <TypeSignature Language="C#" Value="public class ArgumentException : SystemException" />
  <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>1.0.5000.0</AssemblyVersion>
    <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.SystemException</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <summary>
      <para> Represents the error that
      occurs when an argument passed to a method is invalid.</para>
    </summary>
    <remarks>
      <para>
        <see cref="T:System.ArgumentException" /> is thrown when a method is invoked and at
   least one of the passed arguments does not meet the method's parameter specification.</para>
      <block subset="none" type="note">
        <para>The Base Class Library includes three derived types: </para>
        <list type="bullet">
          <item>
            <term>
              <see cref="T:System.ArgumentNullException" />
            </term>
          </item>
          <item>
            <term>
              <para>
                <see cref="T:System.ArgumentOutOfRangeException" />
              </para>
            </term>
          </item>
          <item>
            <term>
              <para>
                <see cref="T:System.DuplicateWaitObjectException" />
              </para>
            </term>
          </item>
        </list>
        <para>When appropriate, use these types instead of <see cref="T:System.ArgumentException" />.</para>
      </block>
    </remarks>
    <example>
      <para>The following example demonstrates an error that causes
      a <see cref="T:System.ArgumentException" /> exception to be thrown by the system.</para>
      <code lang="C#">using System;
public class MyClass {}
public class ArgExceptionExample {
  public static void Main() {
    MyClass my = new MyClass();
    string s = "sometext";
    try {
       int i = s.CompareTo(my);
    }
    catch (ArgumentException e) {
       Console.WriteLine("Error: {0}",e);
    }
  }
}
   </code>
      <para>The output is</para>
      <c>
        <para>Error: System.ArgumentException: Object must be of type String.</para>
        <para>at System.String.CompareTo(Object value)</para>
        <para>at ArgExceptionExample.Main()</para>
      </c>
    </example>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor()" />
      <MemberSignature Language="C#" Value="public ArgumentException ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>
          <para>Constructs and initializes a new instance of the <see cref="T:System.ArgumentException" />
class.</para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="P:System.ArgumentException.Message" /> property of the new instance to a system-supplied
   message that describes the error, such as "An invalid argument was specified."
   This message takes into account the current system culture.</para>
          <para>The <see cref="!:System.ArgumentException.InnerException" /> property is initialized to 
<see langword="null" /> .</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(string message)" />
      <MemberSignature Language="C#" Value="public ArgumentException (string message);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="message" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="message">A <see cref="T:System.String" /> that describes the error. The content of <paramref name="message" /> is intended to be understood by humans. The caller of this constructor is required to ensure that this string has been localized for the current system culture.</param>
        <summary>
          <para>Constructs and initializes a new instance of the <see cref="T:System.ArgumentException" /> class.</para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="P:System.ArgumentException.Message" /> property of the new instance using <paramref name="message" />. If <paramref name="message" /> is
<see langword="null" />, the <see cref="P:System.ArgumentException.Message" /> property is initialized to the 
   system-supplied message provided by the constructor that takes no arguments. The <see cref="!:System.ArgumentException.InnerException" /> and
<see cref="P:System.ArgumentException.ParamName" /> properties are
   initialized to <see langword="null" />.</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected ArgumentException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);" />
      <MemberType>Constructor</MemberType>
      <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>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(string message, class System.Exception innerException)" />
      <MemberSignature Language="C#" Value="public ArgumentException (string message, Exception innerException);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="message" Type="System.String" />
        <Parameter Name="innerException" Type="System.Exception" />
      </Parameters>
      <Docs>
        <param name="message">A <see cref="T:System.String" /> that describes the error. The content of <paramref name="message" /> is intended to be understood by humans. The caller of this constructor is required to ensure that this string has been localized for the current system culture.</param>
        <param name="innerException">An instance of <see cref="T:System.Exception" /> that is the cause of the current Exception. If <paramref name="innerException" /> is non-null, then the current Exception was raised in a catch block handling <paramref name="innerException" /> .</param>
        <summary>
          <para>Constructs and initializes a new instance of the <see cref="T:System.ArgumentException" />
class.</para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="P:System.ArgumentException.Message" /> property of the new instance using <paramref name="message" />, and the <see cref="!:System.ArgumentException.InnerException" />
property using <paramref name="innerException" />. If <paramref name="message" /> is
<see langword="null" />, the <see cref="P:System.ArgumentException.Message" /> property is initialized to the 
system-supplied message provided by the constructor that takes no arguments. The
<see cref="P:System.ArgumentException.ParamName" /> property is initialized to 
<see langword="null" /> 
. </para>
          <para>
            <block subset="none" type="note">For information on inner exceptions, see
<see cref="P:System.Exception.InnerException" />.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(string message, string paramName)" />
      <MemberSignature Language="C#" Value="public ArgumentException (string message, string paramName);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="message" Type="System.String" />
        <Parameter Name="paramName" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="message">A <see cref="T:System.String" /> that describes the error. The content of <paramref name="message" /> is intended to be understood by humans. The caller of this constructor is required to ensure that this string has been localized for the current system culture.</param>
        <param name="paramName">A <see cref="T:System.String" /> that contains the name of the parameter that caused the exception.</param>
        <summary>
          <para>Constructs and initializes a new instance of the <see cref="T:System.ArgumentException" />
class.</para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="P:System.ArgumentException.Message" /> property of the new instance using <paramref name="message" />, and
   the <see cref="P:System.ArgumentException.ParamName" /> property using <paramref name="paramName" />. If <paramref name="message" /> is <see langword="null" />,
   the <see cref="P:System.ArgumentException.Message" /> property is initialized to the system-supplied message
   provided by the constructor that takes no arguments. The <see cref="!:System.ArgumentException.InnerException" /> property is
   initialized to <see langword="null" />.</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(string message, string paramName, class System.Exception innerException)" />
      <MemberSignature Language="C#" Value="public ArgumentException (string message, string paramName, Exception innerException);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="message" Type="System.String" />
        <Parameter Name="paramName" Type="System.String" />
        <Parameter Name="innerException" Type="System.Exception" />
      </Parameters>
      <Docs>
        <param name="message">A <see cref="T:System.String" /> that describes the error. The content of <paramref name="message" /> is intended to be understood by humans. The caller of this constructor is required to ensure that this string has been localized for the current system culture.</param>
        <param name="paramName">A <see cref="T:System.String" /> that contains the name of the parameter that caused the current exception.</param>
        <param name="innerException">An instance of <see cref="T:System.Exception" /> that is the cause of the current Exception. If <paramref name="innerException" /> is non-null, then the current Exception was raised in a catch block handling <paramref name="innerException" />.</param>
        <summary>
          <para>Constructs and initializes a new instance of the <see cref="T:System.ArgumentException" />
class.</para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="P:System.ArgumentException.Message" /> property of the new instance using <paramref name="message" />,
   the <see cref="P:System.ArgumentException.ParamName" /> property using <paramref name="paramName" />, and the <see cref="!:System.ArgumentException.InnerException" /> property using <paramref name="innerException" />. If <paramref name="message" /> is
<see langword="null" />, the <see cref="P:System.ArgumentException.Message" /> property is initialized to the 
   system-supplied message provided by the constructor that takes no arguments. </para>
          <para>
            <block subset="none" type="note"> For information on inner exceptions, see <see cref="P:System.Exception.InnerException" />.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetObjectData">
      <MemberSignature Language="C#" Value="public override 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>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Message">
      <MemberSignature Language="C#" Value="public override string Message { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <para>Gets the error message that explains the reason for the exception.</para>
        </summary>
        <value>
          <para>A <see cref="T:System.String" /> containing the error message with <see cref="P:System.ArgumentException.ParamName" /> appended, if it in not <see langword="null" />.</para>
        </value>
        <remarks>
          <para> 
This property is read-only.</para>
        </remarks>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ParamName">
      <MemberSignature Language="ILASM" Value=".property string ParamName { public hidebysig virtual specialname string get_ParamName() }" />
      <MemberSignature Language="C#" Value="public virtual string ParamName { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets the name of the parameter that caused the
      current Exception.</para>
        </summary>
        <value>
          <para> A <see cref="T:System.String" /> that contains the 
   name of the parameter that caused the current Exception, or
<see langword="null" /> if no value was specified to the constructor
   for
   the current instance.</para>
        </value>
        <remarks>
          <para> This property is read-only.</para>
          <para>
            <block subset="none" type="behaviors">The <see cref="P:System.ArgumentException.ParamName" /> property
   returns the same value as was passed into the constructor.</block>
          </para>
          <para>
            <block subset="none" type="overrides">Override
   the <see cref="P:System.ArgumentException.ParamName" /> property
   to customize the content or format of the parameter name. </block>
          </para>
          <para>
            <block subset="none" type="usage">
   Use this property to retrieve the name of the invalid parameter.
</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
</Type>
