型宣言を表します。型には、クラス型、インターフェイス型、配列型、値型、列挙型、型パラメータ、ジェネリック型定義、およびオープン構築ジェネリック型またはクローズ構築ジェネリック型があります。
名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.None)> _
Public MustInherit Class Type
Inherits MemberInfo
Implements _Type, IReflect
[SerializableAttribute]
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.None)]
public abstract class Type : MemberInfo, _Type, IReflect
[SerializableAttribute]
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType::None)]
public ref class Type abstract : public MemberInfo, _Type, IReflect
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.None) */
public abstract class Type extends MemberInfo implements _Type, IReflect
SerializableAttribute
ComVisibleAttribute(true)
ClassInterfaceAttribute(ClassInterfaceType.None)
public abstract class Type extends MemberInfo implements _Type, IReflect
Type は System.Reflection 機能のルートであり、メタデータにアクセスするための主要手段です。コンストラクタ、メソッド、フィールド、プロパティ、クラスのイベント、クラスを配置するモジュールやアセンブリなどの型宣言に関する情報を取得するには、Type のメンバを使用します。
型を表す Type オブジェクトは一意であり、2 つの Type オブジェクト参照が同じオブジェクトを参照するのは、これら 2 つのオブジェクトが同じ型を表す場合に限られます。これにより、参照の等価を使用して Type オブジェクトの比較ができます。
ReflectionPermission を使用しないと、コードは読み込まれたアセンブリのパブリック メンバにしかアクセスできません。実際には、Object.GetType への無制限アクセス、エクスポートされたパブリックな型への Type.GetType を使用したアクセス、GetTypeFromHandle へのアクセスなどが可能です。FullName および Attributes など、Type のプロパティの中には、ReflectionPermission を使用せずにアクセスできるものもあります。
Type は、複数の実装を持つことができる抽象基本クラスです。システムは、必ず派生クラス RuntimeType を提供します。リフレクションでは、Runtime という語で始まるすべてのクラスがシステム内のオブジェクトごとに 1 回だけ生成され、このクラスが比較操作をサポートします。
メモ |
|---|
| マルチスレッド シナリオでは、static データへのアクセスを同期化する目的で Type オブジェクトをロックしないでください。制御できない他のコードによってクラスの型がロックされる可能性があります。これによりデッドロックが発生することもあります。代わりに、プライベート static オブジェクトをロックすることにより、静的データへのアクセスを同期化させてください。 |
このクラスはスレッド セーフであり、複数のスレッドが同時にこの型のインスタンスから読み込むことができます。Type のインスタンスは、次に示すすべての型を表現できます。
型に関連付けられた Type オブジェクトへの参照は、次の方法で取得できます。
メモ |
|---|
| 派生クラスは、呼び出し元のコードの基本クラスのプロテクト メンバにアクセスできます。また、呼び出し元のコードのアセンブリのアセンブリ メンバにアクセスすることもできます。原則として、事前バインディング コードにアクセスできる場合は、遅延バインディング コードにもアクセスできます。 |
メモ |
|---|
| 他のインターフェイスを拡張するインターフェイスには、拡張される側のインターフェイスで定義されているメソッドは継承されません。 |
継承時の注意 Type から継承する場合は、GUID、InvokeMember(String,BindingFlags,Binder,Object,Object[],ParameterModifier[],CultureInfo,String[])、Module、Assembly、TypeHandle、FullName、Namespace、AssemblyQualifiedName、BaseType、GetConstructorImpl、GetConstructors(BindingFlags)、GetMethodImpl、GetMethods(BindingFlags)、GetField(String,BindingFlags)、GetFields(BindingFlags)、GetInterface(String,Boolean)、GetInterfaces、GetEvent(String,BindingFlags)、GetEvents(BindingFlags)、GetPropertyImpl、GetProperties(BindingFlags)、GetNestedType(String,BindingFlags)、GetNestedTypes(BindingFlags)、GetAttributeFlagsImpl、IsArrayImpl、IsByRefImpl、IsPointerImpl、IsPrimitiveImpl、IsCOMObjectImpl、GetElementType、HasElementTypeImpl、UnderlyingSystemType、MemberInfo.Name、MemberInfo.IsDefined、MemberInfo.GetCustomAttributes、および GetCustomAttributes の各メンバをオーバーライドする必要があります。
System.Object
System.Reflection.MemberInfo
System.Type
System.Reflection.Emit.EnumBuilder
System.Reflection.Emit.GenericTypeParameterBuilder
System.Reflection.Emit.TypeBuilder
System.Reflection.TypeDelegator
この型は、スレッド セーフです。
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
.NET Framework
サポート対象 : 2.0、1.1、1.0
.NET Compact Framework
サポート対象 : 2.0、1.0