Type.GetType メソッド ()
アセンブリ: mscorlib (mscorlib.dll 内)




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


Type.GetType メソッド (String, Boolean, Boolean)
アセンブリ: mscorlib (mscorlib.dll 内)

Public Shared Function GetType ( _ typeName As String, _ throwOnError As Boolean, _ ignoreCase As Boolean _ ) As Type
Dim typeName As String Dim throwOnError As Boolean Dim ignoreCase As Boolean Dim returnValue As Type returnValue = Type.GetType(typeName, throwOnError, ignoreCase)
public static function GetType ( typeName : String, throwOnError : boolean, ignoreCase : boolean ) : Type
戻り値
存在する場合は、指定した名前を持つ Type。それ以外の場合は null 参照 (Visual Basic では Nothing)。


GetType は、ディスクから読み込まれたアセンブリ上だけで動作します。System.Reflection.Emit サービスを使用して定義した動的アセンブリ内で定義した型を検索するために GetType を呼び出すと、矛盾する動作が発生する可能性があります。その動作は、動的アセンブリが永続的かどうかによって異なります。つまり、その動的アセンブリが System.Reflection.Emit.AssemblyBuilderAccess 列挙体の RunAndSave アクセス モードまたは Save アクセス モードのどちらを使用して作成されたかによって異なります。動的アセンブリが永続的で、GetType が呼び出される前にディスクに書き込まれている場合、ローダーはディスク上に保存されているアセンブリを見つけて読み込み、そのアセンブリから型を取得します。GetType が呼び出された時点でアセンブリがディスク上に保存されていない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。GetType は一時動的アセンブリを認識しないため、一時動的アセンブリ内の型を取得するために GetType を呼び出すと、null 参照 (Visual Basic では Nothing) が返されます。
動的モジュールの GetType を使用するには、AppDomain.AssemblyResolve イベントをサブスクライブし、保存する前に GetType を呼び出します。保存する前に呼び出さないと、メモリに 2 つのコピーが作成されることになります。
throwOnError パラメータは、型が見つからなかった場合の動作にのみ影響します。スローされる可能性のあるその他の例外には影響しません。特に、型が見つかっても読み込むことができない場合は、throwOnError が false であっても TypeLoadException がスローされます。
要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。
型に対するリフレクション時に Get メソッドによって返される基本クラスのメンバを次の表に示します。
メンバ型 | 非静的 | |
---|---|---|
いいえ | いいえ | |
いいえ | ||
適用なし | 共通型システムの規則では、継承は、プロパティを実装するメソッドの継承と同じになります。リフレクションは、プロパティを名前と署名によって隠ぺいされているとして扱います。下記のメモ 2 を参照してください。 | |
いいえ | はい。メソッド (仮想メソッドと非仮想メソッドの両方) は、名前によって隠蔽することもできますし、名前と署名によって隠蔽することもできます。 | |
いいえ | いいえ | |
適用なし | 共通型システムの規則では、継承は、プロパティを実装するメソッドの継承と同じになります。リフレクションは、プロパティを名前と署名によって隠ぺいされているとして扱います。下記のメモ 2 を参照してください。 |
-
名前と署名による隠ぺいでは、カスタム修飾子、戻り値の型、パラメータの型、sentinel、およびアンマネージ呼び出し規約を含めて、署名のすべての部分が判断の対象となります。これはバイナリ比較です。
-
リフレクションの場合、プロパティおよびイベントは名前と署名によって隠ぺいされています。基本クラスに get アクセサと set アクセサの両方を持つプロパティがあり、派生クラスには get アクセサしかない場合、派生クラスのプロパティにより基本クラスのプロパティが隠ぺいされ、基本クラスの set アクセサにはアクセスできません。
使用できるクラスのテーブルに事前に読み込まれていない限り、配列や COM 型は検索対象になりません。
typeName には、単純型名、名前空間を含む型名、またはアセンブリ名の指定を含む複合名を指定できます。
typeName に Type の名前だけが含まれている場合、このメソッドは最初に呼び出し元のオブジェクトのアセンブリで検索を行い、次に mscorlib.dll アセンブリで検索を行います。typeName が部分アセンブリ名または完全アセンブリ名で完全修飾されている場合、このメソッドは指定されたアセンブリで検索を行います。
AssemblyQualifiedName は、入れ子にされた型、アセンブリ名、および型引数を含む完全修飾型名を返すことができます。入れ子になったクラスに対して、共通言語ランタイムをサポートするすべてのコンパイラは簡易名を生成し、リフレクションが、照会されたときに次の規則に従って完全限定名を生成します。
TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly
名前空間が TopNamespace.Sub+Namespace である場合、プラス記号 (+) が、入れ子になったクラスの区切り文字として解釈されないように、プラス記号 (+) の前にエスケープ文字 (\) を付ける必要があります。リフレクションは、この文字列を次のように生成します。
TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly
"++" は "\+\+"、"\" は "\\" となります。
この完全限定名は永続化でき、後で Type を読み込むために使用できます。Type を検索して読み込むには、型名だけ、またはアセンブリ修飾型名のいずれかを指定して GetType を使用します。型名だけを指定して GetType を使用した場合は、呼び出し元のアセンブリの Type だけが検索され、次に System アセンブリが検索されます。アセンブリ修飾型名を指定して GetType を使用した場合は、任意のアセンブリ内の Type が検索されます。
型名の末尾には、その型に関する追加情報を示す文字を追加できます。たとえば、その型が参照型か、ポインタ型か、配列型かなどを表す文字を追加できます。このような末尾の文字を除いて型名だけを取得するには、t.GetElementType().ToString() を使用します。t が型を示します。
アセンブリ名を除くすべての型名コンポーネントで、スペースには意味があります。アセンブリ名では、区切り記号 ',' の前のスペースには意味がありますが、区切り記号 ',' の後のスペースは無視されます。
ジェネリック型の場合、型引数リストは角かっこで囲まれ、型引数はコンマで区切られます。たとえば、ジェネリック型の Dictionary には 2 種類のパラメータがあります。型 String のキーを持つ MyType の Dictionary は、次のように表されます。
System.Collections.Generic.Dictionary`2[System.String,MyType]
型引数リスト内のアセンブリ修飾型を指定するには、アセンブリ修飾型を角かっこで囲みます。囲まなかった場合、アセンブリ修飾名の各部分を区切るコンマが追加の区切りの型引数として解釈されます。たとえば、型 String のキーを持つ、MyAssembly.dll からの MyType の Dictionary は、次のように指定できます。
Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")
![]() |
---|
アセンブリ修飾型を角かっこで囲むことができるのは、型パラメータ リスト内に存在する場合のみです。修飾型および非修飾型のアセンブリを型パラメータ リストで検索する規則は、修飾および非修飾の非ジェネリック型を検索する規則と同じです。 |
さまざまな種類の GetType で使用する構文を次の表に示します。
MyType へのアンマネージ ポインタ | Type.GetType("MyType*") |
MyType へのアンマネージ ポインタ | Type.GetType("MyType**") |
Type.GetType("MyType&")。ポインタとは異なり、参照は、1 レベルに限定されることに注意してください。 | |
Type.GetType("MyParentClass+MyNestedClass") | |
Type.GetType("MyArray[]") | |
Type.GetType("MyArray[*]") | |
角かっこ内のコンマ (,) の合計数は、n-1 になります。たとえば、System.Object[,,] は、3 次元の Object 配列を表します。 | |
Type.GetType("MyArray[][]") | |
Type.GetType("MyArray[*,*]") または Type.GetType("MyArray[,]") | |
Type.GetType("MyGenericType`1[MyType]") | |
Type.GetType("MyGenericType`2[MyType,AnotherType]") | |
Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]") | |
Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly") | |
Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]") |
Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows CE プラットフォームメモ : ignoreCase パラメータはサポートされていないため、false に設定する必要があります。


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


Type.GetType メソッド (String, Boolean)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim typeName As String Dim throwOnError As Boolean Dim returnValue As Type returnValue = Type.GetType(typeName, throwOnError)
戻り値
存在する場合は、指定した名前を持つ Type。それ以外の場合は null 参照 (Visual Basic では Nothing)。


GetType は、ディスクから読み込まれたアセンブリ上だけで動作します。System.Reflection.Emit サービスを使用して定義した動的アセンブリ内で定義した型を検索するために GetType を呼び出すと、矛盾する動作が発生する可能性があります。その動作は、動的アセンブリが永続的かどうかによって異なります。つまり、その動的アセンブリが System.Reflection.Emit.AssemblyBuilderAccess 列挙体の RunAndSave アクセス モードまたは Save アクセス モードのどちらを使用して作成されたかによって異なります。動的アセンブリが永続的で、GetType が呼び出される前にディスクに書き込まれている場合、ローダーはディスク上に保存されているアセンブリを見つけて読み込み、そのアセンブリから型を取得します。GetType が呼び出された時点でアセンブリがディスク上に保存されていない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。GetType は一時動的アセンブリを認識しないため、一時動的アセンブリ内の型を取得するために GetType を呼び出すと、null 参照 (Visual Basic では Nothing) が返されます。
動的モジュールの GetType を使用するには、AppDomain.AssemblyResolve イベントをサブスクライブし、保存する前に GetType を呼び出します。保存する前に呼び出さないと、メモリに 2 つのコピーが作成されることになります。
throwOnError パラメータは、型が見つからなかった場合の動作にのみ影響します。スローされる可能性のあるその他の例外には影響しません。特に、型が見つかっても読み込むことができない場合は、throwOnError が false であっても TypeLoadException がスローされます。
要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。
型に対するリフレクション時に Get メソッドによって返される基本クラスのメンバを次の表に示します。
メンバ型 | 非静的 | |
---|---|---|
いいえ | いいえ | |
いいえ | ||
適用なし | 共通型システムの規則では、継承は、プロパティを実装するメソッドの継承と同じになります。リフレクションは、プロパティを名前と署名によって隠ぺいされているとして扱います。下記のメモ 2 を参照してください。 | |
いいえ | はい。メソッド (仮想メソッドと非仮想メソッドの両方) は、名前によって隠蔽することもできますし、名前と署名によって隠蔽することもできます。 | |
いいえ | いいえ | |
適用なし | 共通型システムの規則では、継承は、プロパティを実装するメソッドの継承と同じになります。リフレクションは、プロパティを名前と署名によって隠ぺいされているとして扱います。下記のメモ 2 を参照してください。 |
-
名前と署名による隠ぺいでは、カスタム修飾子、戻り値の型、パラメータの型、sentinel、およびアンマネージ呼び出し規約を含めて、署名のすべての部分が判断の対象となります。これはバイナリ比較です。
-
リフレクションの場合、プロパティおよびイベントは名前と署名によって隠ぺいされています。基本クラスに get アクセサと set アクセサの両方を持つプロパティがあり、派生クラスには get アクセサしかない場合、派生クラスのプロパティにより基本クラスのプロパティが隠ぺいされ、基本クラスの set アクセサにはアクセスできません。
使用できるクラスのテーブルに事前に読み込まれていない限り、配列や COM 型は検索対象になりません。
typeName には、単純型名、名前空間を含む型名、またはアセンブリ名の指定を含む複合名を指定できます。
typeName に Type の名前だけが含まれている場合、このメソッドは最初に呼び出し元のオブジェクトのアセンブリで検索を行い、次に mscorlib.dll アセンブリで検索を行います。typeName が部分アセンブリ名または完全アセンブリ名で完全修飾されている場合、このメソッドは指定されたアセンブリで検索を行います。
AssemblyQualifiedName は、入れ子にされた型、アセンブリ名、および汎用引数を含む完全修飾型名を返すことができます。入れ子になったクラスに対して、共通言語ランタイムをサポートするすべてのコンパイラは簡易名を生成し、リフレクションが、照会されたときに次の規則に従って完全限定名を生成します。
TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly
名前空間が TopNamespace.Sub+Namespace である場合、プラス記号 (+) が、入れ子になったクラスの区切り文字として解釈されないように、プラス記号 (+) の前にエスケープ文字 (\) を付ける必要があります。リフレクションは、この文字列を次のように生成します。
TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly
"++" は "\+\+"、"\" は "\\" となります。
この完全限定名は永続化でき、後で Type を読み込むために使用できます。Type を検索して読み込むには、型名だけ、またはアセンブリ修飾型名のいずれかを指定して GetType を使用します。型名だけを指定して GetType を使用した場合は、呼び出し元のアセンブリの Type だけが検索され、次に System アセンブリが検索されます。アセンブリ限修飾型名を指定して GetType を使用した場合は、任意のアセンブリ内の Type が検索されます。
型名の末尾には、その型に関する追加情報を示す文字を追加できます。たとえば、その型が参照型か、ポインタ型か、配列型かなどを表す文字を追加できます。このような末尾の文字を除いて型名だけを取得するには、t.GetElementType().ToString() を使用します。t が型を示します。
アセンブリ名を除くすべての型名コンポーネントで、スペースには意味があります。アセンブリ名では、区切り記号 ',' の前のスペースには意味がありますが、区切り記号 ',' の後のスペースは無視されます。
ジェネリック型の場合、型引数リストは角かっこで囲まれ、型引数はコンマで区切られます。たとえば、ジェネリック型の Dictionary には 2 種類のパラメータがあります。型 String のキーを持つ MyType の Dictionary は、次のように表されます。
System.Collections.Generic.Dictionary`2[System.String,MyType]
型引数リスト内のアセンブリ修飾型を指定するには、アセンブリ修飾型を角かっこで囲みます。囲まなかった場合、アセンブリ修飾名の各部分を区切るコンマが追加の区切りの型引数として解釈されます。たとえば、型 String のキーを持つ、MyAssembly.dll からの MyType の Dictionary は、次のように指定できます。
Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")
![]() |
---|
アセンブリ修飾型を角かっこで囲むことができるのは、型パラメータ リスト内に存在する場合のみです。修飾型および非修飾型のアセンブリを型パラメータ リストで検索する規則は、修飾および非修飾の非ジェネリック型を検索する規則と同じです。 |
さまざまな種類の GetType で使用する構文を次の表に示します。
MyType へのアンマネージ ポインタ | Type.GetType("MyType*") |
MyType へのアンマネージ ポインタ | Type.GetType("MyType**") |
Type.GetType("MyType&")。ポインタとは異なり、参照は、1 レベルに限定されることに注意してください。 | |
Type.GetType("MyParentClass+MyNestedClass") | |
Type.GetType("MyArray[]") | |
Type.GetType("MyArray[*]") | |
角かっこ内のコンマ (,) の合計数は、n-1 になります。たとえば、System.Object[,,] は、3 次元の Object 配列を表します。 | |
Type.GetType("MyArray[][]") | |
Type.GetType("MyArray[*,*]") または Type.GetType("MyArray[,]") | |
Type.GetType("MyGenericType`1[MyType]") | |
Type.GetType("MyGenericType`2[MyType,AnotherType]") | |
Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]") | |
Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly") | |
Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]") |

System.Int32 の型を取得し、その型オブジェクトを使用して、System.Int32 の FullName プロパティを表示する例を次に示します。型オブジェクトが存在しないアセンブリを参照している場合、この例では例外がスローされます。
Imports System Namespace MyTypeNameSpace Class MyClass1 Public Shared Sub Main() Try ' Get the type of the specified class. Dim myType1 As Type = Type.GetType("System.Int32") Console.WriteLine("The full name is {0}.", myType1.FullName) ' Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException. Dim myType2 As Type = Type.GetType("NoneSuch", True) Console.WriteLine("The full name is {0}.", myType2.FullName) Catch e As TypeLoadException Console.WriteLine(e.Message.ToString()) Catch e As Exception Console.WriteLine(e.Message.ToString()) End Try End Sub 'Main End Class 'MyClass1 End Namespace 'MyTypeNameSpace
using System; namespace MyTypeNameSpace { class MyClass { public static void Main(string[] arg) { try { // Get the type of a specified class. Type myType1 = Type.GetType("System.Int32"); Console.WriteLine("The full name is {0}.", myType1.FullName); // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException. Type myType2 = Type.GetType("NoneSuch", true); Console.WriteLine("The full name is {0}.", myType2.FullName); } catch(TypeLoadException e) { Console.WriteLine(e.Message); } catch(Exception e) { Console.WriteLine(e.Message); } } } }
using namespace System; int main() { try { // Get the type of a specified class. Type^ myType1 = Type::GetType( "System.Int32" ); Console::WriteLine( "The full name is {0}.", myType1->FullName ); // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException. Type^ myType2 = Type::GetType( "NoneSuch", true ); Console::WriteLine( "The full name is {0}.", myType2->FullName ); } catch ( TypeLoadException^ e ) { Console::WriteLine( e->Message ); } catch ( Exception^ e ) { Console::WriteLine( e->Message ); } }
package MyTypeNameSpace; import System.*; class MyClass { public static void main(String[] args) { try { // Get the type of a specified class. Type myType1 = Type.GetType("System.Int32"); Console.WriteLine("The full name is {0}.", myType1.get_FullName()); // Since NoneSuch does not exist in this assembly, GetType throws // a TypeLoadException. Type myType2 = Type.GetType("NoneSuch", true); Console.WriteLine("The full name is {0}.", myType2.get_FullName()); } catch (TypeLoadException e) { Console.WriteLine(e.get_Message()); } catch (System.Exception e) { Console.WriteLine(e.get_Message()); } } //main } //MyClass


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


Type.GetType メソッド

名前 | 説明 |
---|---|
Type.GetType () | 現在の Type を取得します。 .NET Compact Framework によってサポートされています。 |
Type.GetType (String) | 大文字と小文字を区別する検索を実行して、指定した名前の Type を取得します。 .NET Compact Framework によってサポートされています。 |
Type.GetType (String, Boolean) | 大文字と小文字を区別する検索を実行し、型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の Type を取得します。 .NET Compact Framework によってサポートされています。 |
Type.GetType (String, Boolean, Boolean) | 大文字と小文字を区別する検索を実行し、型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の Type を取得します。 .NET Compact Framework によってサポートされています。 |

Type.GetType メソッド (String)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim typeName As String Dim returnValue As Type returnValue = Type.GetType(typeName)
戻り値
存在する場合は、指定した名前を持つ Type。それ以外の場合は null 参照 (Visual Basic では Nothing)。


GetType は、ディスクから読み込まれたアセンブリ上だけで動作します。System.Reflection.Emit サービスを使用して定義した動的アセンブリ内で定義した型を検索するために GetType を呼び出すと、矛盾する動作が発生する可能性があります。その動作は、動的アセンブリが永続的かどうかによって異なります。つまり、その動的アセンブリが System.Reflection.Emit.AssemblyBuilderAccess 列挙体の RunAndSave アクセス モードまたは Save アクセス モードのどちらを使用して作成されたかによって異なります。動的アセンブリが永続的で、GetType が呼び出される前にディスクに書き込まれている場合、ローダーはディスク上に保存されているアセンブリを見つけて読み込み、そのアセンブリから型を取得します。GetType が呼び出された時点でアセンブリがディスク上に保存されていない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。GetType は一時動的アセンブリを認識しないため、一時動的アセンブリ内の型を取得するために GetType を呼び出すと、null 参照 (Visual Basic では Nothing) が返されます。
動的モジュールの GetType を使用するには、AppDomain.AssemblyResolve イベントをサブスクライブし、保存する前に GetType を呼び出します。保存する前に呼び出さないと、メモリに 2 つのコピーが作成されることになります。
要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。
型に対するリフレクション時に Get メソッドによって返される基本クラスのメンバを次の表に示します。
メンバ型 | 非静的 | |
---|---|---|
いいえ | いいえ | |
いいえ | ||
適用なし | 共通型システムの規則では、継承は、プロパティを実装するメソッドの継承と同じになります。リフレクションは、プロパティを名前と署名によって隠ぺいされているとして扱います。下記のメモ 2 を参照してください。 | |
いいえ | はい。メソッド (仮想メソッドと非仮想メソッドの両方) は、名前によって隠蔽することもできますし、名前と署名によって隠蔽することもできます。 | |
いいえ | いいえ | |
適用なし | 共通型システムの規則では、継承は、プロパティを実装するメソッドの継承と同じになります。リフレクションは、プロパティを名前と署名によって隠ぺいされているとして扱います。下記のメモ 2 を参照してください。 |
-
名前と署名による隠ぺいでは、カスタム修飾子、戻り値の型、パラメータの型、sentinel、およびアンマネージ呼び出し規約を含めて、署名のすべての部分が判断の対象となります。これはバイナリ比較です。
-
リフレクションの場合、プロパティおよびイベントは名前と署名によって隠ぺいされています。基本クラスに get アクセサと set アクセサの両方を持つプロパティがあり、派生クラスには get アクセサしかない場合、派生クラスのプロパティにより基本クラスのプロパティが隠ぺいされ、基本クラスの set アクセサにはアクセスできません。
使用できるクラスのテーブルに事前に読み込まれていない限り、配列や COM 型は検索対象になりません。
typeName には、単純型名、名前空間を含む型名、またはアセンブリ名の指定を含む複合名を指定できます。
typeName に Type の名前だけが含まれている場合、このメソッドは最初に呼び出し元のオブジェクトのアセンブリで検索を行い、次に mscorlib.dll アセンブリで検索を行います。typeName が部分アセンブリ名または完全アセンブリ名で完全限定されている場合、このメソッドは指定されたアセンブリで検索を行います。
AssemblyQualifiedName は、入れ子にされた型、アセンブリ名、およびジェネリック型引数を含む完全修飾型名を返すことができます。入れ子になったクラスに対して、共通言語ランタイムをサポートするすべてのコンパイラは簡易名を生成し、リフレクションが、照会されたときに次の規則に従って完全限定名を生成します。
TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly
名前空間が TopNamespace.Sub+Namespace である場合、プラス記号 (+) が、入れ子になったクラスの区切り文字として解釈されないように、プラス記号 (+) の前にエスケープ文字 (\) を付ける必要があります。リフレクションは、この文字列を次のように生成します。
TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly
"++" は "\+\+"、"\" は "\\" となります。
この完全限定名は永続化でき、後で Type を読み込むために使用できます。Type を検索して読み込むには、型名だけ、またはアセンブリ修飾型名のいずれかを指定して GetType を使用します。型名だけを指定して GetType を使用した場合は、呼び出し元のアセンブリの Type だけが検索され、次に System アセンブリが検索されます。アセンブリ修飾型名を指定して GetType を使用した場合は、任意のアセンブリ内の Type が検索されます。
型名の末尾には、その型に関する追加情報を示す文字を追加できます。たとえば、その型が参照型か、ポインタ型か、配列型かなどを表す文字を追加できます。このような末尾の文字を除いて型名だけを取得するには、t.GetElementType().ToString() を使用します。t が型を示します。
アセンブリ名を除くすべての型名コンポーネントで、スペースには意味があります。アセンブリ名では、区切り記号 ',' の前のスペースには意味がありますが、区切り記号 ',' の後のスペースは無視されます。
ジェネリック型の場合、型引数リストは角かっこで囲まれ、型引数はコンマで区切られます。たとえば、ジェネリック型の Dictionary には 2 種類のパラメータがあります。型 String のキーを持つ MyType の Dictionary は、次のように表されます。
System.Collections.Generic.Dictionary`2[System.String,MyType]
型引数リスト内のアセンブリ修飾型を指定するには、アセンブリ修飾型を角かっこで囲みます。囲まなかった場合、アセンブリ修飾名の各部分を区切るコンマが追加の区切りの型引数として解釈されます。たとえば、型 String のキーを持つ、MyAssembly.dll からの MyType の Dictionary は、次のように指定できます。
Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")
![]() |
---|
アセンブリ修飾型を角かっこで囲むことができるのは、型パラメータ リスト内に存在する場合のみです。修飾型および非修飾型のアセンブリを型パラメータ リストで検索する規則は、修飾および非修飾の非ジェネリック型を検索する規則と同じです。 |
さまざまな種類の GetType で使用する構文を次の表に示します。
MyType へのアンマネージ ポインタ | Type.GetType("MyType*") |
MyType へのアンマネージ ポインタ | Type.GetType("MyType**") |
Type.GetType("MyType&")。ポインタとは異なり、参照は、1 レベルに限定されることに注意してください。 | |
Type.GetType("MyParentClass+MyNestedClass") | |
Type.GetType("MyType[]") | |
Type.GetType("MyType[*]") | |
角かっこ内のコンマ (,) の合計数は、n-1 になります。たとえば、System.Object[,,] は、3 次元の Object 配列を表します。 | |
Type.GetType("MyType[][]") | |
Type.GetType("MyType[*,*]") または Type.GetType("MyType[,]") | |
Type.GetType("MyGenericType`1[MyType]") | |
Type.GetType("MyGenericType`2[MyType,AnotherType]") | |
Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]") | |
Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly") | |
Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]") |

System.Int32 の型を取得し、その型オブジェクトを使用して、System.Int32 の FullName プロパティを表示する例を次に示します。
Imports System Namespace MyTypeNameSpace Class MyClass1 Public Shared Sub Main() Try ' Get the type of the specified class. Dim myType1 As Type = Type.GetType("System.Int32") Console.WriteLine("The full name is {0}.", myType1.FullName) ' Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException. Dim myType2 As Type = Type.GetType("NoneSuch", True) Console.WriteLine("The full name is {0}.", myType2.FullName) Catch e As TypeLoadException Console.WriteLine(e.Message.ToString()) Catch e As Exception Console.WriteLine(e.Message.ToString()) End Try End Sub 'Main End Class 'MyClass1 End Namespace 'MyTypeNameSpace
using System; namespace MyTypeNameSpace { class MyClass { public static void Main(string[] arg) { try { // Get the type of a specified class. Type myType1 = Type.GetType("System.Int32"); Console.WriteLine("The full name is {0}.", myType1.FullName); // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException. Type myType2 = Type.GetType("NoneSuch", true); Console.WriteLine("The full name is {0}.", myType2.FullName); } catch(TypeLoadException e) { Console.WriteLine(e.Message); } catch(Exception e) { Console.WriteLine(e.Message); } } } }
using namespace System; int main() { try { // Get the type of a specified class. Type^ myType1 = Type::GetType( "System.Int32" ); Console::WriteLine( "The full name is {0}.", myType1->FullName ); // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException. Type^ myType2 = Type::GetType( "NoneSuch", true ); Console::WriteLine( "The full name is {0}.", myType2->FullName ); } catch ( TypeLoadException^ e ) { Console::WriteLine( e->Message ); } catch ( Exception^ e ) { Console::WriteLine( e->Message ); } }
package MyTypeNameSpace; import System.*; class MyClass { public static void main(String[] args) { try { // Get the type of a specified class. Type myType1 = Type.GetType("System.Int32"); Console.WriteLine("The full name is {0}.", myType1.get_FullName()); // Since NoneSuch does not exist in this assembly, GetType throws // a TypeLoadException. Type myType2 = Type.GetType("NoneSuch", true); Console.WriteLine("The full name is {0}.", myType2.get_FullName()); } catch (TypeLoadException e) { Console.WriteLine(e.get_Message()); } catch (System.Exception e) { Console.WriteLine(e.get_Message()); } } //main } //MyClass


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


_Type.GetType メソッド
アセンブリ: mscorlib (mscorlib.dll 内)



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


- Type.GetTypeのページへのリンク