ArrayTypeMismatchException Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Az a kivétel, amely akkor fordul elő, amikor egy nem megfelelő típusú elemet próbálnak tárolni egy tömbön belül.
public ref class ArrayTypeMismatchException : Exception
public ref class ArrayTypeMismatchException : SystemException
public class ArrayTypeMismatchException : Exception
public class ArrayTypeMismatchException : SystemException
[System.Serializable]
public class ArrayTypeMismatchException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArrayTypeMismatchException : SystemException
type ArrayTypeMismatchException = class
inherit Exception
type ArrayTypeMismatchException = class
inherit SystemException
[<System.Serializable>]
type ArrayTypeMismatchException = class
inherit SystemException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArrayTypeMismatchException = class
inherit SystemException
Public Class ArrayTypeMismatchException
Inherits Exception
Public Class ArrayTypeMismatchException
Inherits SystemException
- Öröklődés
- Öröklődés
- Attribútumok
Példák
Az alábbi példakód bemutatja a dobás helyét ArrayTypeMismatchException .
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
Megjegyzések
ArrayTypeMismatchException akkor kerül sor, ha a rendszer nem tudja átalakítani az elemet a tömbhöz deklarált típusra. Egy típuselem String például nem tárolható tömbben Int32 , mert az ilyen típusok közötti átalakítás nem támogatott. Ez a kivétel általában szükségtelen az alkalmazások számára.
Az alábbi Microsoft köztes nyelv (MSIL) utasításai ArrayTypeMismatchException:
ldelem.<type>ldelemastelem.<type>
ArrayTypeMismatchException A HRESULT COR_E_ARRAYTYPEMISMATCH használja, amelynek értéke 0x80131503.
A ArrayTypeMismatchException példány kezdeti tulajdonságainak listájáért tekintse meg a ArrayTypeMismatchException konstruktorokat.
Konstruktorok
| Name | Description |
|---|---|
| ArrayTypeMismatchException() |
Inicializálja a ArrayTypeMismatchException osztály új példányát. |
| ArrayTypeMismatchException(SerializationInfo, StreamingContext) |
Elavult.
Inicializálja az ArrayTypeMismatchException osztály új példányát szerializált adatokkal. |
| ArrayTypeMismatchException(String, Exception) |
Inicializálja az ArrayTypeMismatchException osztály új példányát egy megadott hibaüzenettel és a kivétel okaként szolgáló belső kivételre mutató hivatkozással. |
| ArrayTypeMismatchException(String) |
Inicializálja az ArrayTypeMismatchException osztály új példányát egy megadott hibaüzenettel. |
Tulajdonságok
| Name | Description |
|---|---|
| Data |
Lekéri a kulcs-/érték párok gyűjteményét, amelyek további, felhasználó által definiált információkat biztosítanak a kivételről. (Öröklődés forrása Exception) |
| HelpLink |
Lekéri vagy beállítja a kivételhez társított súgófájlra mutató hivatkozást. (Öröklődés forrása Exception) |
| HResult |
Lekéri vagy beállítja a HRESULT-ot, egy kódolt numerikus értéket, amely egy adott kivételhez van hozzárendelve. (Öröklődés forrása Exception) |
| InnerException |
Lekéri az Exception aktuális kivételt okozó példányt. (Öröklődés forrása Exception) |
| Message |
Az aktuális kivételt leíró üzenet jelenik meg. (Öröklődés forrása Exception) |
| Source |
Lekéri vagy beállítja az alkalmazás vagy a hibát okozó objektum nevét. (Öröklődés forrása Exception) |
| StackTrace |
Lekéri a hívásverem közvetlen kereteinek sztringképét. (Öröklődés forrása Exception) |
| TargetSite |
Lekéri az aktuális kivételt okozó metódust. (Öröklődés forrása Exception) |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetBaseException() |
Ha egy származtatott osztály felül van bírálva, egy Exception vagy több későbbi kivétel kiváltó okát adja vissza. (Öröklődés forrása Exception) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Elavult.
Ha felül van bírálva egy származtatott osztályban, a SerializationInfo kivétel adatait adja meg. (Öröklődés forrása Exception) |
| GetType() |
Lekéri az aktuális példány futtatókörnyezeti típusát. (Öröklődés forrása Exception) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Létrehozza és visszaadja az aktuális kivétel sztring-ábrázolását. (Öröklődés forrása Exception) |
esemény
| Name | Description |
|---|---|
| SerializeObjectState |
Elavult.
Akkor fordul elő, ha a kivétel szerializálva van egy kivételállapot-objektum létrehozásához, amely szerializált adatokat tartalmaz a kivételről. (Öröklődés forrása Exception) |