ArrayTypeMismatchException クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Class ArrayTypeMismatchException Inherits SystemException
[SerializableAttribute] [ComVisibleAttribute(true)] public class ArrayTypeMismatchException : SystemException
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class ArrayTypeMismatchException : public SystemException

ArrayTypeMismatchException は、システムが要素の型を配列に対して宣言されている型に変換できないときにスローされます。たとえば、String 型の要素は、Int32 配列には格納できません。これは、これらの型の間の変換がサポートされていないためです。通常、アプリケーションでこの例外をスローする必要はありません。
次の MSIL (Microsoft Intermediate Language) 命令は、ArrayTypeMismatchException をスローします。
ArrayTypeMismatchException は、値 0x80131503 を保持する HRESULT COR_E_ARRAYTYPEMISMATCH を使用します。
ArrayTypeMismatchException のインスタンスの初期プロパティ値の一覧については、ArrayTypeMismatchException コンストラクタのトピックを参照してください。

ArrayTypeMismatchException がスローされる場合のコード例を次に示します。
Option Explicit On Option Strict On Imports System Namespace ArrayTypeMismatch Class Class1 'Entry point which delegates to C-style main Private Function Public Overloads Shared Sub Main() Main(System.Environment.GetCommandLineArgs()) End Sub Overloads 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
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."); } } } }
using namespace System; int main() { array<String^>^names = { "Dog", "Cat", "Fish"}; array<Object^>^objs = dynamic_cast<array<Object^>^>(names); try { objs[ 2 ] = (Object^)"Mouse"; for ( Int32 i = 0; i < objs->Length; i++ ) { Console::WriteLine( objs[ i ] ); } } catch ( System::ArrayTypeMismatchException^ ) { // Not reached, "Mouse" is of the correct type Console::WriteLine( "Exception Thrown" ); } try { Object^ obj = 13; objs[ 2 ] = obj; } catch ( System::ArrayTypeMismatchException^ ) { // Always reached, 13 is not a string. Console::WriteLine( "New element is not of the correct type" ); } // Set obj to an array of objects instead of an array of strings array<Object^>^objs2 = gcnew array<Object^>(3); try { objs2[ 0 ] = (Object^)"Turtle"; objs2[ 1 ] = 12; objs2[ 2 ] = 2.341; for ( Int32 i = 0; i < objs->Length; i++ ) { Console::WriteLine( objs2[ i ] ); } } catch ( System::ArrayTypeMismatchException^ ) { // ArrayTypeMismatchException is not thrown this time. Console::WriteLine( "Exception Thrown" ); } } /*expected return values: Dog Cat Mouse New element is not of the correct type Turtle 12 2.341 */
package ArrayTypeMismatch; import System.*; class Class1 { public static void main(String[] args) { String names[] = { "Dog", "Cat", "Fish" }; Object objs[] = names; try { objs.set_Item(2, "Mouse"); for (int iCtr = 0; iCtr < objs.length; iCtr++) { Console.WriteLine(objs[iCtr]); } } catch (System.ArrayTypeMismatchException exp) { // Not reached, "Mouse" is of the correct type. Console.WriteLine("Exception Thrown."); } try { objs[2] = (Int32)13; } catch (System.ArrayTypeMismatchException exp) { // Always reached, 13 is not a string. 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.set_Item(0, "Turtle"); objs.set_Item(1, (Int16)12); objs.set_Item(2, (Single)2.341); for (int iCtr = 0; iCtr < objs.length; iCtr++) { Console.WriteLine(objs[iCtr]); } } catch (System.ArrayTypeMismatchException exp) { // ArrayTypeMismatchException is not thrown this time. System.Console.WriteLine("Exception Thrown."); } } //main } //Class1

System.Exception
System.SystemException
System.ArrayTypeMismatchException


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ArrayTypeMismatchException クラスのページへのリンク