<Type Name="ArrayTypeMismatchException" FullName="System.ArrayTypeMismatchException" FullNameSP="System_ArrayTypeMismatchException" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class public serializable ArrayTypeMismatchException extends System.SystemException" />
  <TypeSignature Language="C#" Value="public class ArrayTypeMismatchException : 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>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 attempt is made to
      store an element of the wrong type in an array.</para>
    </summary>
    <remarks>
      <para>
        <see cref="T:System.ArrayTypeMismatchException" /> is thrown when the system
   cannot convert the element to the type declared for the array. <block subset="none" type="note">This exception will not be thrown if the element
   can be converted to the type declared for the array. For example, an element
   of type <see cref="T:System.Byte" /> can
   be stored in an array declared to store <see cref="T:System.Int32" /> values, but an element of type <see cref="T:System.String" /> cannot be stored
   in a <see cref="T:System.Int32" /> array because conversion between these types is
   not supported.</block></para>
      <block subset="none" type="note">
        <para>This exception is thrown by the <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" /> method if a
   widening conversion cannot be performed on the operand
   to convert it to the array type.</para>
        <para> It is generally unnecessary for applications to throw
   this exception.</para>
        <para>The following CIL instructions throw <see cref="T:System.ArrayTypeMismatchException" />
: </para>
        <list type="bullet">
          <item>
            <term>
      
      ldelem.&lt;type&gt;</term>
          </item>
          <item>
            <term>
      
      ldelema</term>
          </item>
          <item>
            <term>
      
      stelem.&lt;type&gt;</term>
          </item>
        </list>
      </block>
    </remarks>
    <example>
      <para>The following example demonstrates an error that causes
      the system to throw a <see cref="T:System.ArrayTypeMismatchException" /> exception.</para>
      <code lang="C#">using System;
class ArrayTypeMisMatchExample {
 public static void Main() {
 string[] array1={"hello","world"};
 int[] array2 = {1,2};
 try {
 Array.Copy(array1,array2,2);
 }
 catch (ArrayTypeMismatchException e) {
 Console.WriteLine("Error: {0}",e);
 }
 }
}
   </code>
      <para>The output is</para>
      <c>
        <para>Error: System.ArrayTypeMismatchException: Source array type cannot be
         assigned to destination array type.</para>
        <para>at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array
         destinationArray, Int32 destinationIndex, Int32 length)</para>
        <para>at System.Array.Copy(Array sourceArray, Array destinationArray, Int32
         length)</para>
        <para>at ArrayTypeMisMatchExample.Main()</para>
      </c>
    </example>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor()" />
      <MemberSignature Language="C#" Value="public ArrayTypeMismatchException ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>
          <para>Constructs and initializes a new instance of the <see cref="T:System.ArrayTypeMismatchException" /> class.</para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="!:System.ArrayTypeMismatchException.Message" /> property of the new instance to a system-supplied
   message that describes the error, such as "Source array type cannot be assigned
   to destination array type." This message takes into account the current system
   culture.</para>
          <para>
The <see cref="!:System.ArrayTypeMismatchException.InnerException" />
property is initialized to <see langword="null" />.</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(string message)" />
      <MemberSignature Language="C#" Value="public ArrayTypeMismatchException (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.ArrayTypeMismatchException" />
class.</para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="!:System.ArrayTypeMismatchException.Message" /> property of the new instance using <paramref name="message" />. If <paramref name="message" /> is
<see langword="null" />, the <see cref="!:System.ArrayTypeMismatchException.Message" /> property is initialized to the system-supplied message 
   provided by the constructor that takes no arguments. The <see cref="!:System.ArrayTypeMismatchException.InnerException" /> property is initialized to
<see langword="null" />.</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected ArrayTypeMismatchException (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>
    </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 ArrayTypeMismatchException (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.ArrayTypeMismatchException" /> class. </para>
        </summary>
        <remarks>
          <para>This constructor initializes the <see cref="!:System.ArrayTypeMismatchException.Message" /> property of the new instance
   using <paramref name="message" /> , and
   the <see cref="P:System.Exception.InnerException" /> property using <paramref name="innerException" />. If <paramref name="message" /> is
<see langword="null" />, the <see cref="!:System.ArrayTypeMismatchException.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>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
</Type>
