ArrayTypeMismatchException Klasse

Definition

Die Ausnahme, die ausgelöst wird, wenn versucht wird, ein Element des falschen Typs innerhalb eines Arrays zu speichern.

public ref class ArrayTypeMismatchException : Exception
public ref class ArrayTypeMismatchException : SystemException
public class ArrayTypeMismatchException : Exception
[System.Serializable]
public class ArrayTypeMismatchException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArrayTypeMismatchException : SystemException
public class ArrayTypeMismatchException : SystemException
type ArrayTypeMismatchException = class
    inherit Exception
[<System.Serializable>]
type ArrayTypeMismatchException = class
    inherit SystemException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArrayTypeMismatchException = class
    inherit SystemException
type ArrayTypeMismatchException = class
    inherit SystemException
Public Class ArrayTypeMismatchException
Inherits Exception
Public Class ArrayTypeMismatchException
Inherits SystemException
Vererbung
ArrayTypeMismatchException
Vererbung
ArrayTypeMismatchException
Attribute

Beispiele

Das folgende Codebeispiel veranschaulicht Szenarien, in denen ArrayTypeMismatchException ausgelöst wird.

using System;

namespace ArrayTypeMismatch
{
    class Class1
    {
        static void Main(string[] args)
        {
            string[] names = {"Dog", "Cat", "Fish"};
            Object[] objs  = (Object[]) names;

            try
            {
                objs[2] = "Mouse";

                foreach (object animalName in objs)
                {
                    System.Console.WriteLine(animalName);
                }
            }
            catch (System.ArrayTypeMismatchException)
            {
                // Not reached; "Mouse" is of the correct type.
                System.Console.WriteLine("Exception Thrown.");
            }

            try
            {
                Object obj = (Object) 13;
                objs[2] = obj;
            }
            catch (System.ArrayTypeMismatchException)
            {
                // Always reached, 13 is not a string.
                System.Console.WriteLine(
                    "New element is not of the correct type.");
            }

            // Set objs to an array of objects instead of
            // an array of strings.
            objs  = new Object[3];
            try
            {
                objs[0] = (Object) "Turtle";
                objs[1] = (Object) 12;
                objs[2] = (Object) 2.341;

                foreach (object element in objs)
                {
                    System.Console.WriteLine(element);
                }
            }
            catch (System.ArrayTypeMismatchException)
            {
                // ArrayTypeMismatchException is not thrown this time.
                System.Console.WriteLine("Exception Thrown.");
            }
        }
    }
}
open System

[<EntryPoint>]
let main _ =
    let names = [| "Dog"; "Cat"; "Fish" |]
    let objs = box names :?> obj[]

    try
        objs[2] <- "Mouse"

        for animalName in objs do
            printfn $"{animalName}"
                    
    with :? ArrayTypeMismatchException ->
        // Not reached; "Mouse" is of the correct type.
        printfn "Exception Thrown."

    try
        let obj = 13 :> obj
        objs[2] <- obj
    with :? ArrayTypeMismatchException ->
        // Always reached, 13 is not a string.
        printfn "New element is not of the correct type."

    // Shadow objs as an array of objects instead of an array of strings.
    let objs: obj[] = [| "Turtle"; 12; 2.341 |]
    try
        for element in objs do
            printfn $"{element}"
        
    with :? ArrayTypeMismatchException ->
        // ArrayTypeMismatchException is not thrown this time.
        printfn "Exception Thrown."

    0
Option Explicit On 
Option Strict On

Namespace ArrayTypeMismatch

   Class Class1

      Public Shared Sub Main(ByVal args() As String)
         
         Dim names As String() = {"Dog", "Cat", "Fish"}
         Dim objs As System.Object() = CType(names, System.Object())

         Try
            objs(2) = "Mouse"

            Dim animalName As Object
            For Each animalName In objs
               System.Console.WriteLine(animalName)
            Next animalName
         Catch exp As System.ArrayTypeMismatchException
            ' Not reached, "Mouse" is of the correct type.
            System.Console.WriteLine("Exception Thrown.")
         End Try

         Try
            Dim obj As System.Object
            obj = CType(13, System.Object)
            objs(2) = obj
         Catch exp As System.ArrayTypeMismatchException
            ' Always reached, 13 is not a string.
            System.Console.WriteLine("New element is not of the correct type.")
         End Try

         ' Set objs to an array of objects instead of an array of strings.
         Dim objs2(3) As System.Object
         Try
            objs2(0) = "Turtle"
            objs2(1) = 12
            objs2(2) = 2.341

            Dim element As Object
            For Each element In objs2
               System.Console.WriteLine(element)
            Next element
         Catch exp As System.ArrayTypeMismatchException
            ' ArrayTypeMismatchException is not thrown this time.
            System.Console.WriteLine("Exception Thrown.")
         End Try
         
      End Sub
   End Class
End Namespace

Hinweise

ArrayTypeMismatchException wird ausgelöst, wenn das System das Element nicht in den für das Array deklarierten Typ konvertieren kann. Beispielsweise kann ein Element vom Typ String nicht in einem Int32 Array gespeichert werden, da die Konvertierung zwischen diesen Typen nicht unterstützt wird. Es ist in der Regel nicht erforderlich, dass Anwendungen diese Ausnahme auslösen.

Die folgenden Microsoft MSIL-Anweisungen (Intermediate Language) lösen ArrayTypeMismatchException aus:

  • ldelem.<type>

  • ldelema

  • stelem.<type>

ArrayTypeMismatchException verwendet die HRESULT-COR_E_ARRAYTYPEMISMATCH, die den Wert 0x80131503 hat.

Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von ArrayTypeMismatchException, finden Sie unter den ArrayTypeMismatchException Konstruktoren.

Konstruktoren

Name Beschreibung
ArrayTypeMismatchException()

Initialisiert eine neue Instanz der ArrayTypeMismatchException-Klasse.

ArrayTypeMismatchException(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der ArrayTypeMismatchException Klasse mit serialisierten Daten.

ArrayTypeMismatchException(String, Exception)

Initialisiert eine neue Instanz der ArrayTypeMismatchException Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die die Ursache dieser Ausnahme ist.

ArrayTypeMismatchException(String)

Initialisiert eine neue Instanz der ArrayTypeMismatchException Klasse mit einer angegebenen Fehlermeldung.

Eigenschaften

Name Beschreibung
Data

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen.

(Geerbt von Exception)
HelpLink

Dient zum Abrufen oder Festlegen eines Links zur Hilfedatei, die dieser Ausnahme zugeordnet ist.

(Geerbt von Exception)
HResult

Dient zum Abrufen oder Festlegen von HRESULT, einem codierten numerischen Wert, der einer bestimmten Ausnahme zugewiesen ist.

(Geerbt von Exception)
InnerException

Ruft die Exception Instanz ab, die die aktuelle Ausnahme verursacht hat.

(Geerbt von Exception)
Message

Ruft eine Nachricht ab, die die aktuelle Ausnahme beschreibt.

(Geerbt von Exception)
Source

Dient zum Abrufen oder Festlegen des Namens der Anwendung oder des Objekts, das den Fehler verursacht.

(Geerbt von Exception)
StackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames im Aufrufstapel ab.

(Geerbt von Exception)
TargetSite

Ruft die Methode ab, die die aktuelle Ausnahme auslöst.

(Geerbt von Exception)

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetBaseException()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Exception Ursache einer oder mehrerer nachfolgenden Ausnahmen zurückgegeben.

(Geerbt von Exception)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetObjectData(SerializationInfo, StreamingContext)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, werden die SerializationInfo Informationen zur Ausnahme festgelegt.

(Geerbt von Exception)
GetType()

Ruft den Laufzeittyp der aktuellen Instanz ab.

(Geerbt von Exception)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Erstellt und gibt eine Zeichenfolgendarstellung der aktuellen Ausnahme zurück.

(Geerbt von Exception)

Ereignisse

Name Beschreibung
SerializeObjectState

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmestatusobjekt zu erstellen, das serialisierte Daten zu der Ausnahme enthält.

(Geerbt von Exception)

Gilt für:

Weitere Informationen