GenericTypeParameterBuilder クラス

定義

動的に定義されているジェネリック型のジェネリック型パラメーターとメソッドを定義して作成します。Defines and creates generic type parameters for dynamically defined generic types and methods. このクラスは継承できません。This class cannot be inherited.

public ref class GenericTypeParameterBuilder sealed : Type
public ref class GenericTypeParameterBuilder sealed : System::Reflection::TypeInfo
public ref class GenericTypeParameterBuilder abstract : System::Reflection::TypeInfo
public sealed class GenericTypeParameterBuilder : Type
public sealed class GenericTypeParameterBuilder : System.Reflection.TypeInfo
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class GenericTypeParameterBuilder : Type
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class GenericTypeParameterBuilder : System.Reflection.TypeInfo
public abstract class GenericTypeParameterBuilder : System.Reflection.TypeInfo
type GenericTypeParameterBuilder = class
    inherit Type
type GenericTypeParameterBuilder = class
    inherit TypeInfo
[<System.Runtime.InteropServices.ComVisible(true)>]
type GenericTypeParameterBuilder = class
    inherit Type
[<System.Runtime.InteropServices.ComVisible(true)>]
type GenericTypeParameterBuilder = class
    inherit TypeInfo
Public NotInheritable Class GenericTypeParameterBuilder
Inherits Type
Public NotInheritable Class GenericTypeParameterBuilder
Inherits TypeInfo
Public MustInherit Class GenericTypeParameterBuilder
Inherits TypeInfo
継承
GenericTypeParameterBuilder
継承
GenericTypeParameterBuilder
継承
GenericTypeParameterBuilder
属性

次のコード例では、2つの型パラメーターを持つジェネリック型を作成し、それらをアセンブリ GenericEmitExample1.dll に保存します。The following code example creates a generic type with two type parameters, and saves them in the assembly GenericEmitExample1.dll. Ildasm.exe (IL 逆アセンブラー)を使用して、生成された型を表示できます。You can use the Ildasm.exe (IL Disassembler) to view the generated types. 動的ジェネリック型の定義に関連する手順の詳細については、「 方法: リフレクション出力を使用してジェネリック型を定義する」を参照してください。For a more detailed explanation of the steps involved in defining a dynamic generic type, see How to: Define a Generic Type with Reflection Emit.

using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
using namespace System::Collections::Generic;

// Dummy class to satisfy TFirst constraints.
//
public ref class Example {};

// Define a trivial base class and two trivial interfaces 
// to use when demonstrating constraints.
//
public ref class ExampleBase {};
public interface class IExampleA {};
public interface class IExampleB {};

// Define a trivial type that can substitute for type parameter 
// TSecond.
//
public ref class ExampleDerived : ExampleBase, IExampleA, IExampleB {};

// List the constraint flags. The GenericParameterAttributes
// enumeration contains two sets of attributes, variance and
// constraints. For this example, only constraints are used.
//
static void ListConstraintAttributes( Type^ t )
{
   // Mask off the constraint flags. 
   GenericParameterAttributes constraints = 
       t->GenericParameterAttributes & 
       GenericParameterAttributes::SpecialConstraintMask;

   if ((constraints & GenericParameterAttributes::ReferenceTypeConstraint)
           != GenericParameterAttributes::None)
       Console::WriteLine( L"    ReferenceTypeConstraint");

   if ((constraints & GenericParameterAttributes::NotNullableValueTypeConstraint)
           != GenericParameterAttributes::None)
       Console::WriteLine( L"    NotNullableValueTypeConstraint");

   if ((constraints & GenericParameterAttributes::DefaultConstructorConstraint)
           != GenericParameterAttributes::None)
       Console::WriteLine( L"    DefaultConstructorConstraint");
}

static void DisplayGenericParameters( Type^ t )
{
   if (!t->IsGenericType)
   {
       Console::WriteLine( L"Type '{0}' is not generic." );
       return;
   }
   if (!t->IsGenericTypeDefinition)
       t = t->GetGenericTypeDefinition();

   array<Type^>^ typeParameters = t->GetGenericArguments();
   Console::WriteLine( L"\r\nListing {0} type parameters for type '{1}'.", 
       typeParameters->Length, t );

   for each ( Type^ tParam in typeParameters )
   {
       Console::WriteLine( L"\r\nType parameter {0}:", 
           tParam->ToString() );

       for each (Type^ c in tParam->GetGenericParameterConstraints())
       {
           if (c->IsInterface)
               Console::WriteLine( L"    Interface constraint: {0}", c);
           else
               Console::WriteLine( L"    Base type constraint: {0}", c);
       }
       ListConstraintAttributes(tParam);
   }
}

void main()
{
   // Define a dynamic assembly to contain the sample type. The
   // assembly will be run and also saved to disk, so
   // AssemblyBuilderAccess.RunAndSave is specified.
   //
   AppDomain^ myDomain = AppDomain::CurrentDomain;
   AssemblyName^ myAsmName = gcnew AssemblyName( L"GenericEmitExample1" );
   AssemblyBuilder^ myAssembly = myDomain->DefineDynamicAssembly( 
       myAsmName, AssemblyBuilderAccess::RunAndSave );

   // An assembly is made up of executable modules. For a single-
   // module assembly, the module name and file name are the same 
   // as the assembly name. 
   //
   ModuleBuilder^ myModule = myAssembly->DefineDynamicModule( 
       myAsmName->Name, String::Concat( myAsmName->Name, L".dll" ) );

   // Get type objects for the base class trivial interfaces to
   // be used as constraints.
   //
   Type^ baseType = ExampleBase::typeid; 
   Type^ interfaceA = IExampleA::typeid; 
   Type^ interfaceB = IExampleB::typeid;
   
   // Define the sample type.
   //
   TypeBuilder^ myType = myModule->DefineType( L"Sample", 
       TypeAttributes::Public );
   
   Console::WriteLine( L"Type 'Sample' is generic: {0}", 
       myType->IsGenericType );
   
   // Define type parameters for the type. Until you do this, 
   // the type is not generic, as the preceding and following 
   // WriteLine statements show. The type parameter names are
   // specified as an array of strings. To make the code
   // easier to read, each GenericTypeParameterBuilder is placed
   // in a variable with the same name as the type parameter.
   // 
   array<String^>^typeParamNames = {L"TFirst",L"TSecond"};
   array<GenericTypeParameterBuilder^>^typeParams = 
       myType->DefineGenericParameters( typeParamNames );

   GenericTypeParameterBuilder^ TFirst = typeParams[0];
   GenericTypeParameterBuilder^ TSecond = typeParams[1];

   Console::WriteLine( L"Type 'Sample' is generic: {0}", 
       myType->IsGenericType );
   
   // Apply constraints to the type parameters.
   //
   // A type that is substituted for the first parameter, TFirst,
   // must be a reference type and must have a parameterless
   // constructor.
   TFirst->SetGenericParameterAttributes( 
       GenericParameterAttributes::DefaultConstructorConstraint | 
       GenericParameterAttributes::ReferenceTypeConstraint 
   );

   // A type that is substituted for the second type
   // parameter must implement IExampleA and IExampleB, and
   // inherit from the trivial test class ExampleBase. The
   // interface constraints are specified as an array
   // containing the interface types. 
   array<Type^>^interfaceTypes = { interfaceA, interfaceB };
   TSecond->SetInterfaceConstraints( interfaceTypes );
   TSecond->SetBaseTypeConstraint( baseType );

   // The following code adds a private field named ExampleField,
   // of type TFirst.
   FieldBuilder^ exField = 
       myType->DefineField("ExampleField", TFirst, 
           FieldAttributes::Private);

   // Define a static method that takes an array of TFirst and 
   // returns a List<TFirst> containing all the elements of 
   // the array. To define this method it is necessary to create
   // the type List<TFirst> by calling MakeGenericType on the
   // generic type definition, generic<T> List. 
   // The parameter type is created by using the
   // MakeArrayType method. 
   //
   Type^ listOf = List::typeid;
   Type^ listOfTFirst = listOf->MakeGenericType(TFirst);
   array<Type^>^ mParamTypes = { TFirst->MakeArrayType() };

   MethodBuilder^ exMethod = 
       myType->DefineMethod("ExampleMethod", 
           MethodAttributes::Public | MethodAttributes::Static, 
           listOfTFirst, 
           mParamTypes);

   // Emit the method body. 
   // The method body consists of just three opcodes, to load 
   // the input array onto the execution stack, to call the 
   // List<TFirst> constructor that takes IEnumerable<TFirst>,
   // which does all the work of putting the input elements into
   // the list, and to return, leaving the list on the stack. The
   // hard work is getting the constructor.
   // 
   // The GetConstructor method is not supported on a 
   // GenericTypeParameterBuilder, so it is not possible to get 
   // the constructor of List<TFirst> directly. There are two
   // steps, first getting the constructor of generic<T> List and then
   // calling a method that converts it to the corresponding 
   // constructor of List<TFirst>.
   //
   // The constructor needed here is the one that takes an
   // IEnumerable<T>. Note, however, that this is not the 
   // generic type definition of generic<T> IEnumerable; instead, the
   // T from generic<T> List must be substituted for the T of 
   // generic<T> IEnumerable. (This seems confusing only because both
   // types have type parameters named T. That is why this example
   // uses the somewhat silly names TFirst and TSecond.) To get
   // the type of the constructor argument, take the generic
   // type definition generic<T> IEnumerable and 
   // call MakeGenericType with the first generic type parameter
   // of generic<T> List. The constructor argument list must be passed
   // as an array, with just one argument in this case.
   // 
   // Now it is possible to get the constructor of generic<T> List,
   // using GetConstructor on the generic type definition. To get
   // the constructor of List<TFirst>, pass List<TFirst> and
   // the constructor from generic<T> List to the static
   // TypeBuilder.GetConstructor method.
   //
   ILGenerator^ ilgen = exMethod->GetILGenerator();
        
   Type^ ienumOf = IEnumerable::typeid;
   Type^ TfromListOf = listOf->GetGenericArguments()[0];
   Type^ ienumOfT = ienumOf->MakeGenericType(TfromListOf);
   array<Type^>^ ctorArgs = {ienumOfT};

   ConstructorInfo^ ctorPrep = listOf->GetConstructor(ctorArgs);
   ConstructorInfo^ ctor = 
       TypeBuilder::GetConstructor(listOfTFirst, ctorPrep);

   ilgen->Emit(OpCodes::Ldarg_0);
   ilgen->Emit(OpCodes::Newobj, ctor);
   ilgen->Emit(OpCodes::Ret);

   // Create the type and save the assembly. 
   Type^ finished = myType->CreateType();
   myAssembly->Save( String::Concat( myAsmName->Name, L".dll" ) );

   // Invoke the method.
   // ExampleMethod is not generic, but the type it belongs to is
   // generic, so in order to get a MethodInfo that can be invoked
   // it is necessary to create a constructed type. The Example 
   // class satisfies the constraints on TFirst, because it is a 
   // reference type and has a default constructor. In order to
   // have a class that satisfies the constraints on TSecond, 
   // this code example defines the ExampleDerived type. These
   // two types are passed to MakeGenericMethod to create the
   // constructed type.
   //
   array<Type^>^ typeArgs = 
       { Example::typeid, ExampleDerived::typeid };
   Type^ constructed = finished->MakeGenericType(typeArgs);
   MethodInfo^ mi = constructed->GetMethod("ExampleMethod");

   // Create an array of Example objects, as input to the generic
   // method. This array must be passed as the only element of an 
   // array of arguments. The first argument of Invoke is 
   // null, because ExampleMethod is static. Display the count
   // on the resulting List<Example>.
   // 
   array<Example^>^ input = { gcnew Example(), gcnew Example() };
   array<Object^>^ arguments = { input };

   List<Example^>^ listX = 
       (List<Example^>^) mi->Invoke(nullptr, arguments);

   Console::WriteLine(
       "\nThere are {0} elements in the List<Example>.", 
       listX->Count);

   DisplayGenericParameters(finished);
}

/* This code example produces the following output:

Type 'Sample' is generic: False
Type 'Sample' is generic: True

There are 2 elements in the List<Example>.

Listing 2 type parameters for type 'Sample[TFirst,TSecond]'.

Type parameter TFirst:
    ReferenceTypeConstraint
    DefaultConstructorConstraint

Type parameter TSecond:
    Interface constraint: IExampleA
    Interface constraint: IExampleB
    Base type constraint: ExampleBase
 */
using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Collections.Generic;

// Define a trivial base class and two trivial interfaces
// to use when demonstrating constraints.
//
public class ExampleBase {}

public interface IExampleA {}

public interface IExampleB {}

// Define a trivial type that can substitute for type parameter
// TSecond.
//
public class ExampleDerived : ExampleBase, IExampleA, IExampleB {}

public class Example
{
    public static void Main()
    {
        // Define a dynamic assembly to contain the sample type. The
        // assembly will not be run, but only saved to disk, so
        // AssemblyBuilderAccess.Save is specified.
        //
        AppDomain myDomain = AppDomain.CurrentDomain;
        AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
        AssemblyBuilder myAssembly =
            myDomain.DefineDynamicAssembly(myAsmName,
                AssemblyBuilderAccess.RunAndSave);

        // An assembly is made up of executable modules. For a single-
        // module assembly, the module name and file name are the same
        // as the assembly name.
        //
        ModuleBuilder myModule =
            myAssembly.DefineDynamicModule(myAsmName.Name,
               myAsmName.Name + ".dll");

        // Get type objects for the base class trivial interfaces to
        // be used as constraints.
        //
        Type baseType = typeof(ExampleBase);
        Type interfaceA = typeof(IExampleA);
        Type interfaceB = typeof(IExampleB);

        // Define the sample type.
        //
        TypeBuilder myType =
            myModule.DefineType("Sample", TypeAttributes.Public);

        Console.WriteLine("Type 'Sample' is generic: {0}",
            myType.IsGenericType);

        // Define type parameters for the type. Until you do this,
        // the type is not generic, as the preceding and following
        // WriteLine statements show. The type parameter names are
        // specified as an array of strings. To make the code
        // easier to read, each GenericTypeParameterBuilder is placed
        // in a variable with the same name as the type parameter.
        //
        string[] typeParamNames = {"TFirst", "TSecond"};
        GenericTypeParameterBuilder[] typeParams =
            myType.DefineGenericParameters(typeParamNames);

        GenericTypeParameterBuilder TFirst = typeParams[0];
        GenericTypeParameterBuilder TSecond = typeParams[1];

        Console.WriteLine("Type 'Sample' is generic: {0}",
            myType.IsGenericType);

        // Apply constraints to the type parameters.
        //
        // A type that is substituted for the first parameter, TFirst,
        // must be a reference type and must have a parameterless
        // constructor.
        TFirst.SetGenericParameterAttributes(
            GenericParameterAttributes.DefaultConstructorConstraint |
            GenericParameterAttributes.ReferenceTypeConstraint);

        // A type that is substituted for the second type
        // parameter must implement IExampleA and IExampleB, and
        // inherit from the trivial test class ExampleBase. The
        // interface constraints are specified as an array
        // containing the interface types.
        TSecond.SetBaseTypeConstraint(baseType);
        Type[] interfaceTypes = {interfaceA, interfaceB};
        TSecond.SetInterfaceConstraints(interfaceTypes);

        // The following code adds a private field named ExampleField,
        // of type TFirst.
        FieldBuilder exField =
            myType.DefineField("ExampleField", TFirst,
                FieldAttributes.Private);

        // Define a static method that takes an array of TFirst and
        // returns a List<TFirst> containing all the elements of
        // the array. To define this method it is necessary to create
        // the type List<TFirst> by calling MakeGenericType on the
        // generic type definition, List<T>. (The T is omitted with
        // the typeof operator when you get the generic type
        // definition.) The parameter type is created by using the
        // MakeArrayType method.
        //
        Type listOf = typeof(List<>);
        Type listOfTFirst = listOf.MakeGenericType(TFirst);
        Type[] mParamTypes = {TFirst.MakeArrayType()};

        MethodBuilder exMethod =
            myType.DefineMethod("ExampleMethod",
                MethodAttributes.Public | MethodAttributes.Static,
                listOfTFirst,
                mParamTypes);

        // Emit the method body.
        // The method body consists of just three opcodes, to load
        // the input array onto the execution stack, to call the
        // List<TFirst> constructor that takes IEnumerable<TFirst>,
        // which does all the work of putting the input elements into
        // the list, and to return, leaving the list on the stack. The
        // hard work is getting the constructor.
        //
        // The GetConstructor method is not supported on a
        // GenericTypeParameterBuilder, so it is not possible to get
        // the constructor of List<TFirst> directly. There are two
        // steps, first getting the constructor of List<T> and then
        // calling a method that converts it to the corresponding
        // constructor of List<TFirst>.
        //
        // The constructor needed here is the one that takes an
        // IEnumerable<T>. Note, however, that this is not the
        // generic type definition of IEnumerable<T>; instead, the
        // T from List<T> must be substituted for the T of
        // IEnumerable<T>. (This seems confusing only because both
        // types have type parameters named T. That is why this example
        // uses the somewhat silly names TFirst and TSecond.) To get
        // the type of the constructor argument, take the generic
        // type definition IEnumerable<T> (expressed as
        // IEnumerable<> when you use the typeof operator) and
        // call MakeGenericType with the first generic type parameter
        // of List<T>. The constructor argument list must be passed
        // as an array, with just one argument in this case.
        //
        // Now it is possible to get the constructor of List<T>,
        // using GetConstructor on the generic type definition. To get
        // the constructor of List<TFirst>, pass List<TFirst> and
        // the constructor from List<T> to the static
        // TypeBuilder.GetConstructor method.
        //
        ILGenerator ilgen = exMethod.GetILGenerator();

        Type ienumOf = typeof(IEnumerable<>);
        Type TfromListOf = listOf.GetGenericArguments()[0];
        Type ienumOfT = ienumOf.MakeGenericType(TfromListOf);
        Type[] ctorArgs = {ienumOfT};

        ConstructorInfo ctorPrep = listOf.GetConstructor(ctorArgs);
        ConstructorInfo ctor =
            TypeBuilder.GetConstructor(listOfTFirst, ctorPrep);

        ilgen.Emit(OpCodes.Ldarg_0);
        ilgen.Emit(OpCodes.Newobj, ctor);
        ilgen.Emit(OpCodes.Ret);

        // Create the type and save the assembly.
        Type finished = myType.CreateType();
        myAssembly.Save(myAsmName.Name+".dll");

        // Invoke the method.
        // ExampleMethod is not generic, but the type it belongs to is
        // generic, so in order to get a MethodInfo that can be invoked
        // it is necessary to create a constructed type. The Example
        // class satisfies the constraints on TFirst, because it is a
        // reference type and has a default constructor. In order to
        // have a class that satisfies the constraints on TSecond,
        // this code example defines the ExampleDerived type. These
        // two types are passed to MakeGenericMethod to create the
        // constructed type.
        //
        Type[] typeArgs = {typeof(Example), typeof(ExampleDerived)};
        Type constructed = finished.MakeGenericType(typeArgs);
        MethodInfo mi = constructed.GetMethod("ExampleMethod");

        // Create an array of Example objects, as input to the generic
        // method. This array must be passed as the only element of an
        // array of arguments. The first argument of Invoke is
        // null, because ExampleMethod is static. Display the count
        // on the resulting List<Example>.
        //
        Example[] input = {new Example(), new Example()};
        object[] arguments = {input};

        List<Example> listX =
            (List<Example>) mi.Invoke(null, arguments);

        Console.WriteLine(
            "\nThere are {0} elements in the List<Example>.",
            listX.Count);

        DisplayGenericParameters(finished);
    }

    private static void DisplayGenericParameters(Type t)
    {
        if (!t.IsGenericType)
        {
            Console.WriteLine("Type '{0}' is not generic.");
            return;
        }
        if (!t.IsGenericTypeDefinition)
        {
            t = t.GetGenericTypeDefinition();
        }

        Type[] typeParameters = t.GetGenericArguments();
        Console.WriteLine("\nListing {0} type parameters for type '{1}'.",
            typeParameters.Length, t);

        foreach( Type tParam in typeParameters )
        {
            Console.WriteLine("\r\nType parameter {0}:", tParam.ToString());

            foreach( Type c in tParam.GetGenericParameterConstraints() )
            {
                if (c.IsInterface)
                {
                    Console.WriteLine("    Interface constraint: {0}", c);
                }
                else
                {
                    Console.WriteLine("    Base type constraint: {0}", c);
                }
            }

            ListConstraintAttributes(tParam);
        }
    }

    // List the constraint flags. The GenericParameterAttributes
    // enumeration contains two sets of attributes, variance and
    // constraints. For this example, only constraints are used.
    //
    private static void ListConstraintAttributes(Type t)
    {
        // Mask off the constraint flags.
        GenericParameterAttributes constraints =
            t.GenericParameterAttributes & GenericParameterAttributes.SpecialConstraintMask;

        if ((constraints & GenericParameterAttributes.ReferenceTypeConstraint)
            != GenericParameterAttributes.None)
        {
            Console.WriteLine("    ReferenceTypeConstraint");
        }

        if ((constraints & GenericParameterAttributes.NotNullableValueTypeConstraint)
            != GenericParameterAttributes.None)
        {
            Console.WriteLine("    NotNullableValueTypeConstraint");
        }

        if ((constraints & GenericParameterAttributes.DefaultConstructorConstraint)
            !=GenericParameterAttributes.None)
        {
            Console.WriteLine("    DefaultConstructorConstraint");
        }
    }
}

/* This code example produces the following output:

Type 'Sample' is generic: False
Type 'Sample' is generic: True

There are 2 elements in the List<Example>.

Listing 2 type parameters for type 'Sample[TFirst,TSecond]'.

Type parameter TFirst:
    ReferenceTypeConstraint
    DefaultConstructorConstraint

Type parameter TSecond:
    Interface constraint: IExampleA
    Interface constraint: IExampleB
    Base type constraint: ExampleBase
 */
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Collections.Generic

' Define a trivial base class and two trivial interfaces 
' to use when demonstrating constraints.
'
Public Class ExampleBase
End Class

Public Interface IExampleA
End Interface

Public Interface IExampleB
End Interface

' Define a trivial type that can substitute for type parameter 
' TSecond.
'
Public Class ExampleDerived
    Inherits ExampleBase
    Implements IExampleA, IExampleB
End Class

Public Class Example
    Public Shared Sub Main()
        ' Define a dynamic assembly to contain the sample type. The
        ' assembly will not be run, but only saved to disk, so
        ' AssemblyBuilderAccess.Save is specified.
        '
        Dim myDomain As AppDomain = AppDomain.CurrentDomain
        Dim myAsmName As New AssemblyName("GenericEmitExample1")
        Dim myAssembly As AssemblyBuilder = myDomain.DefineDynamicAssembly( _
            myAsmName, _
            AssemblyBuilderAccess.RunAndSave)

        ' An assembly is made up of executable modules. For a single-
        ' module assembly, the module name and file name are the same 
        ' as the assembly name. 
        '
        Dim myModule As ModuleBuilder = myAssembly.DefineDynamicModule( _
            myAsmName.Name, _
            myAsmName.Name & ".dll")

        ' Get type objects for the base class trivial interfaces to
        ' be used as constraints.
        '
        Dim baseType As Type = GetType(ExampleBase)
        Dim interfaceA As Type = GetType(IExampleA)
        Dim interfaceB As Type = GetType(IExampleB)
                
        ' Define the sample type.
        '
        Dim myType As TypeBuilder = myModule.DefineType( _
            "Sample", _
            TypeAttributes.Public)

        Console.WriteLine("Type 'Sample' is generic: {0}", _
            myType.IsGenericType)

        ' Define type parameters for the type. Until you do this, 
        ' the type is not generic, as the preceding and following 
        ' WriteLine statements show. The type parameter names are
        ' specified as an array of strings. To make the code
        ' easier to read, each GenericTypeParameterBuilder is placed
        ' in a variable with the same name as the type parameter.
        ' 
        Dim typeParamNames() As String = {"TFirst", "TSecond"}
        Dim typeParams() As GenericTypeParameterBuilder = _
            myType.DefineGenericParameters(typeParamNames)

        Dim TFirst As GenericTypeParameterBuilder = typeParams(0)
        Dim TSecond As GenericTypeParameterBuilder = typeParams(1)

        Console.WriteLine("Type 'Sample' is generic: {0}", _
            myType.IsGenericType)

        ' Apply constraints to the type parameters.
        '
        ' A type that is substituted for the first parameter, TFirst,
        ' must be a reference type and must have a parameterless
        ' constructor.
        TFirst.SetGenericParameterAttributes( _
            GenericParameterAttributes.DefaultConstructorConstraint _
            Or GenericParameterAttributes.ReferenceTypeConstraint)

        ' A type that is substituted for the second type
        ' parameter must implement IExampleA and IExampleB, and
        ' inherit from the trivial test class ExampleBase. The
        ' interface constraints are specified as an array 
        ' containing the interface types.
        TSecond.SetBaseTypeConstraint(baseType)
        Dim interfaceTypes() As Type = {interfaceA, interfaceB}
        TSecond.SetInterfaceConstraints(interfaceTypes)

        ' The following code adds a private field named ExampleField,
        ' of type TFirst.
        Dim exField As FieldBuilder = _
            myType.DefineField("ExampleField", TFirst, _
                FieldAttributes.Private)

        ' Define a Shared method that takes an array of TFirst and 
        ' returns a List(Of TFirst) containing all the elements of 
        ' the array. To define this method it is necessary to create
        ' the type List(Of TFirst) by calling MakeGenericType on the
        ' generic type definition, List(Of T). (The T is omitted with
        ' the GetType operator when you get the generic type 
        ' definition.) The parameter type is created by using the
        ' MakeArrayType method. 
        '
        Dim listOf As Type = GetType(List(Of ))
        Dim listOfTFirst As Type = listOf.MakeGenericType(TFirst)
        Dim mParamTypes() As Type = { TFirst.MakeArrayType() }

        Dim exMethod As MethodBuilder = _
            myType.DefineMethod("ExampleMethod", _
                MethodAttributes.Public Or MethodAttributes.Static, _
                listOfTFirst, _
                mParamTypes)

        ' Emit the method body. 
        ' The method body consists of just three opcodes, to load 
        ' the input array onto the execution stack, to call the 
        ' List(Of TFirst) constructor that takes IEnumerable(Of TFirst),
        ' which does all the work of putting the input elements into
        ' the list, and to return, leaving the list on the stack. The
        ' hard work is getting the constructor.
        ' 
        ' The GetConstructor method is not supported on a 
        ' GenericTypeParameterBuilder, so it is not possible to get 
        ' the constructor of List(Of TFirst) directly. There are two
        ' steps, first getting the constructor of List(Of T) and then
        ' calling a method that converts it to the corresponding 
        ' constructor of List(Of TFirst).
        '
        ' The constructor needed here is the one that takes an
        ' IEnumerable(Of T). Note, however, that this is not the 
        ' generic type definition of IEnumerable(Of T); instead, the
        ' T from List(Of T) must be substituted for the T of 
        ' IEnumerable(Of T). (This seems confusing only because both
        ' types have type parameters named T. That is why this example
        ' uses the somewhat silly names TFirst and TSecond.) To get
        ' the type of the constructor argument, take the generic
        ' type definition IEnumerable(Of T) (expressed as 
        ' IEnumerable(Of ) when you use the GetType operator) and 
        ' call MakeGenericType with the first generic type parameter
        ' of List(Of T). The constructor argument list must be passed
        ' as an array, with just one argument in this case.
        ' 
        ' Now it is possible to get the constructor of List(Of T),
        ' using GetConstructor on the generic type definition. To get
        ' the constructor of List(Of TFirst), pass List(Of TFirst) and
        ' the constructor from List(Of T) to the static
        ' TypeBuilder.GetConstructor method.
        '
        Dim ilgen As ILGenerator = exMethod.GetILGenerator()
        
        Dim ienumOf As Type = GetType(IEnumerable(Of ))
        Dim listOfTParams() As Type = listOf.GetGenericArguments()
        Dim TfromListOf As Type = listOfTParams(0)
        Dim ienumOfT As Type = ienumOf.MakeGenericType(TfromListOf)
        Dim ctorArgs() As Type = { ienumOfT }

        Dim ctorPrep As ConstructorInfo = _
            listOf.GetConstructor(ctorArgs)
        Dim ctor As ConstructorInfo = _
            TypeBuilder.GetConstructor(listOfTFirst, ctorPrep)

        ilgen.Emit(OpCodes.Ldarg_0)
        ilgen.Emit(OpCodes.Newobj, ctor)
        ilgen.Emit(OpCodes.Ret)

        ' Create the type and save the assembly. 
        Dim finished As Type = myType.CreateType()
        myAssembly.Save(myAsmName.Name & ".dll")

        ' Invoke the method.
        ' ExampleMethod is not generic, but the type it belongs to is
        ' generic, so in order to get a MethodInfo that can be invoked
        ' it is necessary to create a constructed type. The Example 
        ' class satisfies the constraints on TFirst, because it is a 
        ' reference type and has a default constructor. In order to
        ' have a class that satisfies the constraints on TSecond, 
        ' this code example defines the ExampleDerived type. These
        ' two types are passed to MakeGenericMethod to create the
        ' constructed type.
        '
        Dim typeArgs() As Type = _
            { GetType(Example), GetType(ExampleDerived) }
        Dim constructed As Type = finished.MakeGenericType(typeArgs)
        Dim mi As MethodInfo = constructed.GetMethod("ExampleMethod")

        ' Create an array of Example objects, as input to the generic
        ' method. This array must be passed as the only element of an 
        ' array of arguments. The first argument of Invoke is 
        ' Nothing, because ExampleMethod is Shared. Display the count
        ' on the resulting List(Of Example).
        ' 
        Dim input() As Example = { New Example(), New Example() }
        Dim arguments() As Object = { input }

        Dim listX As List(Of Example) = mi.Invoke(Nothing, arguments)

        Console.WriteLine(vbLf & _
            "There are {0} elements in the List(Of Example).", _
            listX.Count _ 
        )

        DisplayGenericParameters(finished)
    End Sub

    Private Shared Sub DisplayGenericParameters(ByVal t As Type)

        If Not t.IsGenericType Then
            Console.WriteLine("Type '{0}' is not generic.")
            Return
        End If
        If Not t.IsGenericTypeDefinition Then _
            t = t.GetGenericTypeDefinition()

        Dim typeParameters() As Type = t.GetGenericArguments()
        Console.WriteLine(vbCrLf & _
            "Listing {0} type parameters for type '{1}'.", _
            typeParameters.Length, t)

        For Each tParam As Type In typeParameters

            Console.WriteLine(vbCrLf & "Type parameter {0}:", _
                tParam.ToString())

            For Each c As Type In tParam.GetGenericParameterConstraints()
                If c.IsInterface Then
                    Console.WriteLine("    Interface constraint: {0}", c)
                Else
                    Console.WriteLine("    Base type constraint: {0}", c)
                End If
            Next 

            ListConstraintAttributes(tParam)
        Next tParam
    End Sub

    ' List the constraint flags. The GenericParameterAttributes
    ' enumeration contains two sets of attributes, variance and
    ' constraints. For this example, only constraints are used.
    '
    Private Shared Sub ListConstraintAttributes(ByVal t As Type)

        ' Mask off the constraint flags. 
        Dim constraints As GenericParameterAttributes = _
            t.GenericParameterAttributes And _
            GenericParameterAttributes.SpecialConstraintMask

        If (constraints And GenericParameterAttributes.ReferenceTypeConstraint) _
                <> GenericParameterAttributes.None Then _
            Console.WriteLine("    ReferenceTypeConstraint")

        If (constraints And GenericParameterAttributes.NotNullableValueTypeConstraint) _
                <> GenericParameterAttributes.None Then _
            Console.WriteLine("    NotNullableValueTypeConstraint")

        If (constraints And GenericParameterAttributes.DefaultConstructorConstraint) _
                <> GenericParameterAttributes.None Then _
            Console.WriteLine("    DefaultConstructorConstraint")

    End Sub 

End Class

' This code example produces the following output:
'
'Type 'Sample' is generic: False
'Type 'Sample' is generic: True
'
'There are 2 elements in the List(Of Example).
'
'Listing 2 type parameters for type 'Sample[TFirst,TSecond]'.
'
'Type parameter TFirst:
'    ReferenceTypeConstraint
'    DefaultConstructorConstraint
'
'Type parameter TSecond:
'    Interface constraint: IExampleA
'    Interface constraint: IExampleB
'    Base type constraint: ExampleBase

注釈

オブジェクトの配列を取得するには、メソッドを使用して GenericTypeParameterBuilder TypeBuilder.DefineGenericParameters 動的な型に型パラメーターを追加し、それをジェネリック型にします。または、メソッドを使用して MethodBuilder.DefineGenericParameters 型パラメーターを動的メソッドに追加します。You can get an array of GenericTypeParameterBuilder objects by using the TypeBuilder.DefineGenericParameters method to add type parameters to a dynamic type, thus making it a generic type, or by using the MethodBuilder.DefineGenericParameters method to add type parameters to a dynamic method. オブジェクトを使用して、 GenericTypeParameterBuilder 型パラメーターに制約を追加します。Use the GenericTypeParameterBuilder objects to add constraints to the type parameters. 制約には次の3つの種類があります。Constraints are of three kinds:

  • 基本型の制約は、ジェネリック型パラメーターに割り当てられたすべての型が特定の基本型から派生する必要があることを指定します。The base type constraint specifies that any type assigned to the generic type parameter must derive from a particular base type. この制約は、メソッドを使用して設定し SetBaseTypeConstraint ます。Set this constraint by using the SetBaseTypeConstraint method.

  • インターフェイス制約は、ジェネリック型パラメーターに割り当てられたすべての型が特定のインターフェイスを実装する必要があることを指定します。An interface constraint specifies that any type assigned to the generic type parameter must implement a particular interface. メソッドを使用して、インターフェイスの制約を設定し SetInterfaceConstraints ます。Set the interface constraints by using the SetInterfaceConstraints method.

  • 特殊な制約は、ジェネリック型パラメーターに割り当てられたすべての型がパラメーターなしのコンストラクターを持つ必要があるか、参照型である必要があるか、または値型である必要があることを指定します。Special constraints specify that any type assigned to the generic type parameter must have a parameterless constructor, must be a reference type, or must be a value type. メソッドを使用して、型パラメーターの特殊な制約を設定し SetGenericParameterAttributes ます。Set the special constraints for a type parameter by using the SetGenericParameterAttributes method.

インターフェイスの制約と特殊な制約は、クラスのメソッドを使用して取得することはできません GenericTypeParameterBuilderInterface constraints and special constraints cannot be retrieved using methods of the GenericTypeParameterBuilder class. 型パラメーターを含むジェネリック型を作成したら、そのオブジェクトを使用して Type 制約を反映できます。Once you have created the generic type that contains the type parameters, you can use its Type object to reflect the constraints. メソッドを使用して Type.GetGenericArguments 型パラメーターを取得し、型パラメーターごとに、メソッドを使用して Type.GetGenericParameterConstraints 基本型の制約とインターフェイスの制約を取得し、プロパティを使用して Type.GenericParameterAttributes 特殊な制約を取得します。Use the Type.GetGenericArguments method to get the type parameters, and for each type parameter use the Type.GetGenericParameterConstraints method to get the base type constraint and interface constraints, and the Type.GenericParameterAttributes property to get the special constraints.

コンストラクター

GenericTypeParameterBuilder()

プロパティ

Assembly

現在の型パラメーターが属するジェネリック型定義を含む動的アセンブリを表す Assembly オブジェクトを取得します。Gets an Assembly object representing the dynamic assembly that contains the generic type definition the current type parameter belongs to.

AssemblyQualifiedName

常に null を取得します。Gets null in all cases.

Attributes
Attributes

Type に関連付けられている属性を取得します。Gets the attributes associated with the Type.

(継承元 Type)
Attributes (継承元 TypeInfo)
BaseType

現在のジェネリック型パラメーターの基本型の制約を取得します。Gets the base type constraint of the current generic type parameter.

ContainsGenericParameters

常に true を取得します。Gets true in all cases.

ContainsGenericParameters (継承元 TypeInfo)
CustomAttributes

このメンバーのカスタム属性を含むコレクションを取得します。Gets a collection that contains this member's custom attributes.

(継承元 MemberInfo)
DeclaredConstructors

現在の型によって宣言されたコンストラクターのコレクションを取得します。Gets a collection of the constructors declared by the current type.

(継承元 TypeInfo)
DeclaredEvents

現在の型によって定義されたイベントのコレクションを取得します。Gets a collection of the events defined by the current type.

(継承元 TypeInfo)
DeclaredFields

現在の型によって定義されたフィールドのコレクションを取得します。Gets a collection of the fields defined by the current type.

(継承元 TypeInfo)
DeclaredMembers

現在の型によって定義されたメンバーのコレクションを取得します。Gets a collection of the members defined by the current type.

(継承元 TypeInfo)
DeclaredMethods

現在の型によって定義されたメソッドのコレクションを取得します。Gets a collection of the methods defined by the current type.

(継承元 TypeInfo)
DeclaredNestedTypes

現在の型によって定義された入れ子の型のコレクションを取得します。Gets a collection of the nested types defined by the current type.

(継承元 TypeInfo)
DeclaredProperties

現在の型によって定義されたプロパティのコレクションを取得します。Gets a collection of the properties defined by the current type.

(継承元 TypeInfo)
DeclaringMethod

現在の MethodInfo がジェネリック メソッドの型パラメーターを表している場合に、宣言するメソッドを表す GenericTypeParameterBuilder を取得します。Gets a MethodInfo that represents the declaring method, if the current GenericTypeParameterBuilder represents a type parameter of a generic method.

DeclaringMethod (継承元 TypeInfo)
DeclaringType

ジェネリック型パラメーターが所属する、ジェネリック型定義またはジェネリック メソッド定義を取得します。Gets the generic type definition or generic method definition to which the generic type parameter belongs.

DeclaringType

現在の入れ子にされた型またはジェネリック型パラメーターを宣言する型を取得します。Gets the type that declares the current nested type or generic type parameter.

(継承元 Type)
FullName

常に null を取得します。Gets null in all cases.

GenericParameterAttributes

現在のジェネリック型パラメーターの共変性および特殊な制約を説明する GenericParameterAttributes フラグの組み合わせを取得します。Gets a combination of GenericParameterAttributes flags that describe the covariance and special constraints of the current generic type parameter.

GenericParameterAttributes

現在のジェネリック型パラメーターの共変性および特殊な制約を説明する GenericParameterAttributes フラグの組み合わせを取得します。Gets a combination of GenericParameterAttributes flags that describe the covariance and special constraints of the current generic type parameter.

(継承元 Type)
GenericParameterAttributes (継承元 TypeInfo)
GenericParameterPosition

パラメーターを宣言するジェネリック型またはジェネリック メソッドの型パラメーター リスト内の型パラメーターの位置を取得します。Gets the position of the type parameter in the type parameter list of the generic type or method that declared the parameter.

GenericParameterPosition (継承元 TypeInfo)
GenericTypeArguments
GenericTypeArguments

この型のジェネリック型引数の配列を取得します。Gets an array of the generic type arguments for this type.

(継承元 Type)
GenericTypeArguments (継承元 TypeInfo)
GenericTypeParameters

現在のインスタンスのジェネリック型パラメーターの配列を取得します。Gets an array of the generic type parameters of the current instance.

(継承元 TypeInfo)
GUID

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

HasElementType

現在の Type が別の型を包含または参照しているかどうか、つまり現在の Type が配列、ポインター、または参照渡しかどうかを示す値を取得します。Gets a value indicating whether the current Type encompasses or refers to another type; that is, whether the current Type is an array, a pointer, or is passed by reference.

(継承元 Type)
HasElementType (継承元 TypeInfo)
ImplementedInterfaces

現在の型で実装されたインターフェイスのコレクションを取得します。Gets a collection of the interfaces implemented by the current type.

(継承元 TypeInfo)
IsAbstract

Type が抽象型で、オーバーライドする必要があるかどうかを示す値を取得します。Gets a value indicating whether the Type is abstract and must be overridden.

(継承元 Type)
IsAbstract (継承元 TypeInfo)
IsAnsiClass

AnsiClass に、文字列書式属性として Type が選択されているかどうかを示す値を取得します。Gets a value indicating whether the string format attribute AnsiClass is selected for the Type.

(継承元 Type)
IsAnsiClass (継承元 TypeInfo)
IsArray

型が配列かどうかを示す値を返します。Gets a value that indicates whether the type is an array.

(継承元 Type)
IsArray (継承元 TypeInfo)
IsAutoClass

AutoClass に、文字列書式属性として Type が選択されているかどうかを示す値を取得します。Gets a value indicating whether the string format attribute AutoClass is selected for the Type.

(継承元 Type)
IsAutoClass (継承元 TypeInfo)
IsAutoLayout

現在の型のフィールドが、共通言語ランタイムによって自動的に配置されているかどうかを示す値を取得します。Gets a value indicating whether the fields of the current type are laid out automatically by the common language runtime.

(継承元 Type)
IsAutoLayout (継承元 TypeInfo)
IsByRef

Type が参照渡しかどうかを示す値を取得します。Gets a value indicating whether the Type is passed by reference.

(継承元 Type)
IsByRef (継承元 TypeInfo)
IsByRefLike
IsByRefLike

型が byref に似た構造体であるかどうかを示す値を取得します。Gets a value that indicates whether the type is a byref-like structure.

(継承元 Type)
IsClass

Type がクラスまたはデリゲートである (つまり値型やインターフェイスではない) かどうかを示す値を取得します。Gets a value indicating whether the Type is a class or a delegate; that is, not a value type or interface.

(継承元 Type)
IsClass (継承元 TypeInfo)
IsCollectible

この MemberInfo オブジェクトが、収集可能な AssemblyLoadContext に保持されているアセンブリの一部であるかどうかを示す値を取得します。Gets a value that indicates whether this MemberInfo object is part of an assembly held in a collectible AssemblyLoadContext.

(継承元 MemberInfo)
IsCOMObject

Type が COM オブジェクトかどうかを示す値を取得します。Gets a value indicating whether the Type is a COM object.

(継承元 Type)
IsCOMObject (継承元 TypeInfo)
IsConstructedGenericType

このオブジェクトが構築ジェネリック型かどうかを示す値を取得します。Gets a value that indicates whether this object represents a constructed generic type.

IsConstructedGenericType

このオブジェクトが構築ジェネリック型かどうかを示す値を取得します。Gets a value that indicates whether this object represents a constructed generic type. 構築ジェネリック型のインスタンスを作成できます。You can create instances of a constructed generic type.

(継承元 Type)
IsContextful

Type をコンテキスト内で管理できるかどうかを示す値を取得します。Gets a value indicating whether the Type can be hosted in a context.

(継承元 Type)
IsEnum
IsEnum

現在の Type が列挙体であるどうかを示す値を取得します。Gets a value indicating whether the current Type represents an enumeration.

(継承元 Type)
IsEnum (継承元 TypeInfo)
IsExplicitLayout

現在の型のフィールドが、明示的に指定したオフセット位置に配置されているかどうかを示す値を取得します。Gets a value indicating whether the fields of the current type are laid out at explicitly specified offsets.

(継承元 Type)
IsExplicitLayout (継承元 TypeInfo)
IsGenericMethodParameter

現在の Type が、ジェネリック メソッドの定義の型パラメーターを表すかどうかを示す値を取得します。Gets a value that indicates whether the current Type represents a type parameter in the definition of a generic method.

(継承元 Type)
IsGenericParameter

常に true を取得します。Gets true in all cases.

IsGenericParameter (継承元 TypeInfo)
IsGenericType

常に false を返します。Returns false in all cases.

IsGenericType (継承元 TypeInfo)
IsGenericTypeDefinition

常に false を取得します。Gets false in all cases.

IsGenericTypeDefinition (継承元 TypeInfo)
IsGenericTypeParameter

現在の Type が、ジェネリック型の定義の型パラメーターを表すかどうかを示す値を取得します。Gets a value that indicates whether the current Type represents a type parameter in the definition of a generic type.

(継承元 Type)
IsImport

TypeComImportAttribute 属性が適用されているかどうかを示す (つまり、COM タイプ ライブラリからインポートされたかどうかを示す) 値を取得します。Gets a value indicating whether the Type has a ComImportAttribute attribute applied, indicating that it was imported from a COM type library.

(継承元 Type)
IsImport (継承元 TypeInfo)
IsInterface

Type がインターフェイスである (つまり値型やクラスではない) ことを示す値を取得します。Gets a value indicating whether the Type is an interface; that is, not a class or a value type.

(継承元 Type)
IsInterface (継承元 TypeInfo)
IsLayoutSequential

現在の型のフィールドが、定義済みまたはメタデータに対して出力された順序で、連続して配置されているかどうかを示す値を取得します。Gets a value indicating whether the fields of the current type are laid out sequentially, in the order that they were defined or emitted to the metadata.

(継承元 Type)
IsLayoutSequential (継承元 TypeInfo)
IsMarshalByRef

Type が参照渡しでマーシャリングされるかどうかを示す値を取得します。Gets a value indicating whether the Type is marshaled by reference.

(継承元 Type)
IsMarshalByRef (継承元 TypeInfo)
IsNested

現在の Type オブジェクトが、別の型の定義内に入れ子になっている定義で定義された型を表しているかどうかを示す値を取得します。Gets a value indicating whether the current Type object represents a type whose definition is nested inside the definition of another type.

(継承元 Type)
IsNested (継承元 TypeInfo)
IsNestedAssembly

Type が入れ子になっていて、それ自体が属するアセンブリ内でだけ参照可能かどうかを示す値を取得します。Gets a value indicating whether the Type is nested and visible only within its own assembly.

(継承元 Type)
IsNestedAssembly (継承元 TypeInfo)
IsNestedFamANDAssem

Type が入れ子になっていて、それ自体が属するファミリとアセンブリの両方に属しているクラスだけから参照可能かどうかを示す値を取得します。Gets a value indicating whether the Type is nested and visible only to classes that belong to both its own family and its own assembly.

(継承元 Type)
IsNestedFamANDAssem (継承元 TypeInfo)
IsNestedFamily

Type が入れ子になっていて、それ自体が属するファミリ内でだけ参照可能かどうかを示す値を取得します。Gets a value indicating whether the Type is nested and visible only within its own family.

(継承元 Type)
IsNestedFamily (継承元 TypeInfo)
IsNestedFamORAssem

Type が入れ子になっていて、それ自体が属するファミリまたはアセンブリのいずれかに属しているクラスだけから参照可能かどうかを示す値を取得します。Gets a value indicating whether the Type is nested and visible only to classes that belong to either its own family or to its own assembly.

(継承元 Type)
IsNestedFamORAssem (継承元 TypeInfo)
IsNestedPrivate

Type が入れ子になっていて、プライベートとして宣言されているかどうかを示す値を取得します。Gets a value indicating whether the Type is nested and declared private.

(継承元 Type)
IsNestedPrivate (継承元 TypeInfo)
IsNestedPublic

クラスが入れ子になっていて、パブリックとして宣言されているかどうかを示す値を取得します。Gets a value indicating whether a class is nested and declared public.

(継承元 Type)
IsNestedPublic (継承元 TypeInfo)
IsNotPublic

Type がパブリックとして宣言されていないかどうかを示す値を取得します。Gets a value indicating whether the Type is not declared public.

(継承元 Type)
IsNotPublic (継承元 TypeInfo)
IsPointer

Type がポインターかどうかを示す値を取得します。Gets a value indicating whether the Type is a pointer.

(継承元 Type)
IsPointer (継承元 TypeInfo)
IsPrimitive

Type がプリミティブ型の 1 つかどうかを示す値を取得します。Gets a value indicating whether the Type is one of the primitive types.

(継承元 Type)
IsPrimitive (継承元 TypeInfo)
IsPublic

Type がパブリックとして宣言されているかどうかを示す値を取得します。Gets a value indicating whether the Type is declared public.

(継承元 Type)
IsPublic (継承元 TypeInfo)
IsSealed

Type が sealed として宣言されているかどうかを示す値を取得します。Gets a value indicating whether the Type is declared sealed.

(継承元 Type)
IsSealed (継承元 TypeInfo)
IsSecurityCritical

現在の型が現在の信頼レベルでセキュリティ クリティカルまたはセキュリティ セーフ クリティカルであり、重要な操作を実行できるかどうかを示す値を取得します。Gets a value that indicates whether the current type is security-critical or security-safe-critical at the current trust level, and therefore can perform critical operations.

(継承元 Type)
IsSecuritySafeCritical

現在の型が現在の信頼レベルでセキュリティ セーフ クリティカルであり、重要な操作を実行でき、透過的なコードからアクセスできるかどうかを示す値を取得します。Gets a value that indicates whether the current type is security-safe-critical at the current trust level; that is, whether it can perform critical operations and can be accessed by transparent code.

(継承元 Type)
IsSecurityTransparent

現在の型が現在の信頼レベルで透過的であり、重要な操作を実行できないかどうかを示す値を取得します。Gets a value that indicates whether the current type is transparent at the current trust level, and therefore cannot perform critical operations.

(継承元 Type)
IsSerializable
IsSerializable

Type をシリアル化できるかどうかを示す値を取得します。Gets a value indicating whether the Type is serializable.

(継承元 Type)
IsSerializable (継承元 TypeInfo)
IsSignatureType

型が署名型かどうかを示す値を取得します。Gets a value that indicates whether the type is a signature type.

(継承元 Type)
IsSpecialName

型が特別な処理を必要とする名前を持っているかどうかを示す値を取得します。Gets a value indicating whether the type has a name that requires special handling.

(継承元 Type)
IsSpecialName (継承元 TypeInfo)
IsSZArray
IsSZArray

型が、下限が 0 の 1 次元配列のみを表すことができる配列型であるかどうかを示す値を取得します。Gets a value that indicates whether the type is an array type that can represent only a single-dimensional array with a zero lower bound.

(継承元 Type)
IsTypeDefinition
IsTypeDefinition

型が型定義かどうかを示す値を取得します。Gets a value that indicates whether the type is a type definition.

(継承元 Type)
IsUnicodeClass

UnicodeClass に、文字列書式属性として Type が選択されているかどうかを示す値を取得します。Gets a value indicating whether the string format attribute UnicodeClass is selected for the Type.

(継承元 Type)
IsUnicodeClass (継承元 TypeInfo)
IsValueType

Type が値型かどうかを示す値を取得します。Gets a value indicating whether the Type is a value type.

(継承元 Type)
IsValueType (継承元 TypeInfo)
IsVariableBoundArray
IsVariableBoundArray

型が多次元配列を表すことができるか、任意の下限を持つ 1 つの配列を表すことができる配列型であるかどうかを示す値を取得します。Gets a value that indicates whether the type is an array type that can represent a multi-dimensional array or an array with an arbitrary lower bound.

(継承元 Type)
IsVisible

Type にアセンブリの外側のコードからアクセスできるかどうかを示す値を取得します。Gets a value indicating whether the Type can be accessed by code outside the assembly.

(継承元 Type)
IsVisible (継承元 TypeInfo)
MemberType

このメンバーが型であるか、または入れ子にされた型であるかを示す MemberTypes 値を取得します。Gets a MemberTypes value indicating that this member is a type or a nested type.

(継承元 Type)
MemberType (継承元 TypeInfo)
MetadataToken

メタデータ要素を識別する値を取得します。Gets a value that identifies a metadata element.

(継承元 MemberInfo)
Module

ジェネリック型パラメーターを含む動的モジュールを取得します。Gets the dynamic module that contains the generic type parameter.

Name

ジェネリック型パラメーターの名前を取得します。Gets the name of the generic type parameter.

Namespace

常に null を取得します。Gets null in all cases.

ReflectedType

GenericTypeParameterBuilder を取得するために使用した Type オブジェクトを取得します。Gets the Type object that was used to obtain the GenericTypeParameterBuilder.

ReflectedType

MemberInfo のこのインスタンスを取得するために使用したクラス オブジェクトを取得します。Gets the class object that was used to obtain this instance of MemberInfo.

(継承元 MemberInfo)
ReflectedType

このメンバーを取得するために使用したクラス オブジェクトを取得します。Gets the class object that was used to obtain this member.

(継承元 Type)
StructLayoutAttribute

現在の型のレイアウトを説明する StructLayoutAttribute を取得します。Gets a StructLayoutAttribute that describes the layout of the current type.

(継承元 Type)
StructLayoutAttribute (継承元 TypeInfo)
TypeHandle

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

TypeHandle

現在の Type のハンドルを取得します。Gets the handle for the current Type.

(継承元 Type)
TypeInitializer

型の初期化子を取得します。Gets the initializer for the type.

(継承元 Type)
TypeInitializer (継承元 TypeInfo)
UnderlyingSystemType

現在のジェネリック型パラメーターを取得します。Gets the current generic type parameter.

UnderlyingSystemType (継承元 TypeInfo)

メソッド

AsType()

現在の型を Type オブジェクトとして返します。Returns the current type as a Type object.

(継承元 TypeInfo)
Equals(Object)

指定されたオブジェクトが EventToken のインスタンスであり、現在のインスタンスと等しいかどうかテストします。Tests whether the given object is an instance of EventToken and is equal to the current instance.

Equals(Object)

現在の Type オブジェクトの基になるシステム型が、指定した Object の基になるシステム型と同じかどうかを判断します。Determines if the underlying system type of the current Type object is the same as the underlying system type of the specified Object.

(継承元 Type)
Equals(Type)

現在の Type の基になるシステム型が、指定した Type の基になるシステム型と同じかどうかを判断します。Determines if the underlying system type of the current Type is the same as the underlying system type of the specified Type.

(継承元 Type)
FindInterfaces(TypeFilter, Object)

現在の Type によって実装または継承されているインターフェイスのフィルター適用済みリストを表す、Type オブジェクトの配列を返します。Returns an array of Type objects representing a filtered list of interfaces implemented or inherited by the current Type.

(継承元 Type)
FindInterfaces(TypeFilter, Object) (継承元 TypeInfo)
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)

指定したメンバー型の MemberInfo オブジェクトの配列にフィルターを適用して返します。Returns a filtered array of MemberInfo objects of the specified member type.

(継承元 Type)
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object) (継承元 TypeInfo)
GetArrayRank()
GetArrayRank()

配列の次元数を取得します。Gets the number of dimensions in an array.

(継承元 Type)
GetArrayRank() (継承元 TypeInfo)
GetAttributeFlagsImpl()

派生クラスでオーバーライドされた場合、Attributes プロパティを実装し、Type に関連付けられている属性を示す列挙値のビットごとの組み合わせを取得します。When overridden in a derived class, implements the Attributes property and gets a bitwise combination of enumeration values that indicate the attributes associated with the Type.

(継承元 Type)
GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

指定したバインディング制約および指定した呼び出し規則を使用して、指定した引数の型および修飾子と一致するパラメーターが設定されているコンストラクターを検索します。Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(継承元 Type)
GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[])

指定したバインディング制約を使用して、指定した引数の型および修飾子と一致するパラメーターが設定されているコンストラクターを検索します。Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(継承元 Type)
GetConstructor(Type[])

指定した配列の型に一致するパラメーターが設定されているパブリック インスタンス コンストラクターを検索します。Searches for a public instance constructor whose parameters match the types in the specified array.

(継承元 Type)
GetConstructor(Type[]) (継承元 TypeInfo)
GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

派生クラスによってオーバーライドされた場合、指定したバインディング制約および指定した呼び出し規約を使用して、指定した引数の型および修飾子と一致するパラメーターが設定されているコンストラクターを検索します。When overridden in a derived class, searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(継承元 Type)
GetConstructors()

現在の Type に対して定義されているパブリック コンストラクターをすべて返します。Returns all the public constructors defined for the current Type.

(継承元 Type)
GetConstructors() (継承元 TypeInfo)
GetConstructors(BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetConstructors(BindingFlags) (継承元 TypeInfo)
GetCustomAttributes(Boolean)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetCustomAttributes(Boolean)

派生クラスでオーバーライドされた場合、このメンバーに適用されているすべてのカスタム属性の配列を返します。When overridden in a derived class, returns an array of all custom attributes applied to this member.

(継承元 MemberInfo)
GetCustomAttributes(Type, Boolean)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetCustomAttributes(Type, Boolean)

派生クラスでオーバーライドされた場合は、このメンバーに適用され、Type によって識別されるカスタム属性の配列を返します。When overridden in a derived class, returns an array of custom attributes applied to this member and identified by Type.

(継承元 MemberInfo)
GetCustomAttributesData()

ターゲット メンバーに適用されている属性に関するデータを表す CustomAttributeData オブジェクトのリストを返します。Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member.

(継承元 MemberInfo)
GetDeclaredEvent(String)

現在の型で宣言済みの指定されたパブリック イベントを表すオブジェクトを返します。Returns an object that represents the specified public event declared by the current type.

(継承元 TypeInfo)
GetDeclaredField(String)

現在の型で宣言済みの指定されたパブリック フィールドを表すオブジェクトを返します。Returns an object that represents the specified public field declared by the current type.

(継承元 TypeInfo)
GetDeclaredMethod(String)

現在の型で宣言済みの指定されたパブリック メソッドを表すオブジェクトを返します。Returns an object that represents the specified public method declared by the current type.

(継承元 TypeInfo)
GetDeclaredMethods(String)

現在の型で宣言された、指定した名前に一致するすべてのパブリック メソッドを含むコレクションを返します。Returns a collection that contains all public methods declared on the current type that match the specified name.

(継承元 TypeInfo)
GetDeclaredNestedType(String)

現在の型で宣言済みの指定されたパブリックな入れ子にされた型を表すオブジェクトを返します。Returns an object that represents the specified public nested type declared by the current type.

(継承元 TypeInfo)
GetDeclaredProperty(String)

現在の型で宣言済みの指定されたパブリック プロパティを表すオブジェクトを返します。Returns an object that represents the specified public property declared by the current type.

(継承元 TypeInfo)
GetDefaultMembers()

Type が設定されている現在の DefaultMemberAttribute に定義されているメンバーを検索します。Searches for the members defined for the current Type whose DefaultMemberAttribute is set.

(継承元 Type)
GetDefaultMembers() (継承元 TypeInfo)
GetElementType()

常に NotSupportedException をスローします。Throws a NotSupportedException in all cases.

GetEnumName(Object)

現在の列挙型の指定された値を持つ定数の名前を返します。Returns the name of the constant that has the specified value, for the current enumeration type.

(継承元 Type)
GetEnumName(Object) (継承元 TypeInfo)
GetEnumNames()

現在の列挙型のメンバーの名前を返します。Returns the names of the members of the current enumeration type.

(継承元 Type)
GetEnumNames() (継承元 TypeInfo)
GetEnumUnderlyingType()

現在の列挙型の基になる型を返します。Returns the underlying type of the current enumeration type.

(継承元 Type)
GetEnumUnderlyingType() (継承元 TypeInfo)
GetEnumValues()

現在の列挙型の定数の値の配列を返します。Returns an array of the values of the constants in the current enumeration type.

(継承元 Type)
GetEnumValues() (継承元 TypeInfo)
GetEvent(String)

指定したパブリック イベントを表す EventInfo オブジェクトを返します。Returns the EventInfo object representing the specified public event.

(継承元 Type)
GetEvent(String) (継承元 TypeInfo)
GetEvent(String, BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetEvent(String, BindingFlags) (継承元 TypeInfo)
GetEvents()

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetEvents() (継承元 TypeInfo)
GetEvents(BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetEvents(BindingFlags) (継承元 TypeInfo)
GetField(String)

指定した名前のパブリック フィールドを検索します。Searches for the public field with the specified name.

(継承元 Type)
GetField(String) (継承元 TypeInfo)
GetField(String, BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetField(String, BindingFlags) (継承元 TypeInfo)
GetFields()

現在の Type のすべてのパブリック フィールドを返します。Returns all the public fields of the current Type.

(継承元 Type)
GetFields() (継承元 TypeInfo)
GetFields(BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetFields(BindingFlags) (継承元 TypeInfo)
GetGenericArguments()

ジェネリック型パラメーターでは使用できません。Not valid for generic type parameters.

GetGenericArguments() (継承元 TypeInfo)
GetGenericParameterConstraints()
GetGenericParameterConstraints()

現在のジェネリック型パラメーターの制約を表す Type オブジェクトの配列を返します。Returns an array of Type objects that represent the constraints on the current generic type parameter.

(継承元 Type)
GetGenericParameterConstraints() (継承元 TypeInfo)
GetGenericTypeDefinition()

ジェネリック型パラメーターでは使用できません。Not valid for generic type parameters.

GetGenericTypeDefinition() (継承元 TypeInfo)
GetHashCode()

現在のインスタンスの 32 ビット整数ハッシュ コードを返します。Returns a 32-bit integer hash code for the current instance.

GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(継承元 Type)
GetInterface(String)

指定した名前のインターフェイスを検索します。Searches for the interface with the specified name.

(継承元 Type)
GetInterface(String) (継承元 TypeInfo)
GetInterface(String, Boolean)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetInterface(String, Boolean) (継承元 TypeInfo)
GetInterfaceMap(Type)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetInterfaceMap(Type)

指定したインターフェイス型に対するインターフェイスの割り当てを返します。Returns an interface mapping for the specified interface type.

(継承元 Type)
GetInterfaces()

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetInterfaces() (継承元 TypeInfo)
GetMember(String)

指定した名前のパブリック メンバーを検索します。Searches for the public members with the specified name.

(継承元 Type)
GetMember(String) (継承元 TypeInfo)
GetMember(String, BindingFlags)

指定したバインディング制約を使用して、指定したメンバーを検索します。Searches for the specified members, using the specified binding constraints.

(継承元 Type)
GetMember(String, BindingFlags) (継承元 TypeInfo)
GetMember(String, MemberTypes, BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetMember(String, MemberTypes, BindingFlags) (継承元 TypeInfo)
GetMembers()

現在の Type のすべてのパブリック メンバーを返します。Returns all the public members of the current Type.

(継承元 Type)
GetMembers() (継承元 TypeInfo)
GetMembers(BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetMembers(BindingFlags) (継承元 TypeInfo)
GetMethod(String)

指定した名前のパブリック メソッドを検索します。Searches for the public method with the specified name.

(継承元 Type)
GetMethod(String) (継承元 TypeInfo)
GetMethod(String, BindingFlags)

指定したバインディング制約を使用して、指定したメソッドを検索します。Searches for the specified method, using the specified binding constraints.

(継承元 Type)
GetMethod(String, BindingFlags) (継承元 TypeInfo)
GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

指定したバインディング制約および指定した呼び出し規約を使用して、指定したメソッドのうち、指定した引数の型および修飾子と一致するパラメーターが設定されているものを検索します。Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(継承元 Type)
GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

指定したバインディング制約を使用して、指定したメソッドのうち、指定した引数の型および修飾子と一致するパラメーターが設定されているものを検索します。Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(継承元 Type)
GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

指定したバインディング制約および指定した呼び出し規約を使用して、指定したメソッドのうち、指定したジェネリック パラメーターの数、引数の型、および修飾子と一致するパラメーターが設定されているものを検索します。Searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints and the specified calling convention.

(継承元 Type)
GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[])

指定したバインディング制約を使用して、指定したメソッドのうち、指定したジェネリック パラメーターの数、引数の型、および修飾子と一致するパラメーターが設定されているものを検索します。Searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints.

(継承元 Type)
GetMethod(String, Int32, Type[])

指定したジェネリック パラメーターの数と引数の型に一致するパラメーターを持つ、指定したパブリック メソッドを検索します。Searches for the specified public method whose parameters match the specified generic parameter count and argument types.

(継承元 Type)
GetMethod(String, Int32, Type[], ParameterModifier[])

指定したジェネリック パラメーターの数、引数の型、および修飾子に一致するパラメーターを持つ、指定したパブリック メソッドを検索します。Searches for the specified public method whose parameters match the specified generic parameter count, argument types and modifiers.

(継承元 Type)
GetMethod(String, Type[])

指定したパブリック メソッドのうち、指定した引数型と一致するパラメーターが設定されているものを検索します。Searches for the specified public method whose parameters match the specified argument types.

(継承元 Type)
GetMethod(String, Type[]) (継承元 TypeInfo)
GetMethod(String, Type[], ParameterModifier[])

指定したパブリック メソッドのうち、指定した引数の型および修飾子と一致するパラメーターが設定されているものを検索します。Searches for the specified public method whose parameters match the specified argument types and modifiers.

(継承元 Type)
GetMethod(String, Type[], ParameterModifier[]) (継承元 TypeInfo)
GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

派生クラスによってオーバーライドされた場合、指定したバインディング制約および指定した呼び出し規則を使用して、指定したメソッドのうち、指定した引数の型および修飾子と一致するパラメーターが設定されているものを検索します。When overridden in a derived class, searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(継承元 Type)
GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

派生クラスによってオーバーライドされた場合、指定したバインディング制約および指定した呼び出し規則を使用して、指定したメソッドのうち、指定したジェネリック パラメーターの数、引数の型、修飾子と一致するパラメーターが設定されているものを検索します。When overridden in a derived class, searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints and the specified calling convention.

(継承元 Type)
GetMethods()

現在の Type のすべてのパブリック メソッドを返します。Returns all the public methods of the current Type.

(継承元 Type)
GetMethods() (継承元 TypeInfo)
GetMethods(BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetMethods(BindingFlags) (継承元 TypeInfo)
GetNestedType(String)

指定した名前を持ち、入れ子にされたパブリックな型を検索します。Searches for the public nested type with the specified name.

(継承元 Type)
GetNestedType(String) (継承元 TypeInfo)
GetNestedType(String, BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetNestedType(String, BindingFlags) (継承元 TypeInfo)
GetNestedTypes()

現在の Type 内で入れ子になっているすべてのパブリック型を返します。Returns the public types nested in the current Type.

(継承元 Type)
GetNestedTypes() (継承元 TypeInfo)
GetNestedTypes(BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetNestedTypes(BindingFlags) (継承元 TypeInfo)
GetProperties()

現在の Type のすべてのパブリック プロパティを返します。Returns all the public properties of the current Type.

(継承元 Type)
GetProperties() (継承元 TypeInfo)
GetProperties(BindingFlags)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

GetProperties(BindingFlags) (継承元 TypeInfo)
GetProperty(String)

指定した名前のパブリック プロパティを検索します。Searches for the public property with the specified name.

(継承元 Type)
GetProperty(String) (継承元 TypeInfo)
GetProperty(String, BindingFlags)

指定されたバインディング制約を使用して、指定されたプロパティを検索します。Searches for the specified property, using the specified binding constraints.

(継承元 Type)
GetProperty(String, BindingFlags) (継承元 TypeInfo)
GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

指定したバインディング制約を使用して、指定した引数の型および修飾子と一致するパラメーターが設定された指定のプロパティを検索します。Searches for the specified property whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(継承元 Type)
GetProperty(String, Type)

指定した名前および戻り値の型を持つパブリック プロパティを検索します。Searches for the public property with the specified name and return type.

(継承元 Type)
GetProperty(String, Type) (継承元 TypeInfo)
GetProperty(String, Type, Type[])

指定したパブリック プロパティのうち、指定した引数型と一致するパラメーターが設定されているものを検索します。Searches for the specified public property whose parameters match the specified argument types.

(継承元 Type)
GetProperty(String, Type, Type[]) (継承元 TypeInfo)
GetProperty(String, Type, Type[], ParameterModifier[])

指定したパブリック プロパティのうち、指定した引数の型および修飾子と一致するパラメーターが設定されているものを検索します。Searches for the specified public property whose parameters match the specified argument types and modifiers.

(継承元 Type)
GetProperty(String, Type, Type[], ParameterModifier[]) (継承元 TypeInfo)
GetProperty(String, Type[])

指定したパブリック プロパティのうち、指定した引数型と一致するパラメーターが設定されているものを検索します。Searches for the specified public property whose parameters match the specified argument types.

(継承元 Type)
GetProperty(String, Type[]) (継承元 TypeInfo)
GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

派生クラスによってオーバーライドされるときに、指定のバインディング制約を使用して、指定した引数の型および修飾子と一致するパラメーターが設定されたプロパティを検索します。When overridden in a derived class, searches for the specified property whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(継承元 Type)
GetType()

現在の Type を取得します。Gets the current Type.

(継承元 Type)
GetType()

メンバーの属性を検出し、メンバーのメタデータへのアクセスを提供します。Discovers the attributes of a member and provides access to member metadata.

(継承元 MemberInfo)
GetTypeCodeImpl()

この Type インスタンスの基になる型コードを返します。Returns the underlying type code of this Type instance.

(継承元 Type)
HasElementTypeImpl()

派生クラスによってオーバーライドされた場合、HasElementType プロパティを実装し、現在の Type が別の型を包含または参照しているかどうか、つまり現在の Type が配列やポインターであるか、参照渡しかどうかを判断します。When overridden in a derived class, implements the HasElementType property and determines whether the current Type encompasses or refers to another type; that is, whether the current Type is an array, a pointer, or is passed by reference.

(継承元 Type)
HasSameMetadataDefinitionAs(MemberInfo) (継承元 MemberInfo)
InvokeMember(String, BindingFlags, Binder, Object, Object[])

指定したバインディング制約を使用し、指定した引数リストと照合して、指定したメンバーを呼び出します。Invokes the specified member, using the specified binding constraints and matching the specified argument list.

(継承元 Type)
InvokeMember(String, BindingFlags, Binder, Object, Object[], CultureInfo)

指定したバインディング制約を使用し、指定したメンバーのうち、指定した引数リストおよびカルチャと一致するメンバーを呼び出します。Invokes the specified member, using the specified binding constraints and matching the specified argument list and culture.

(継承元 Type)
InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])

派生クラス内でオーバーライドされた場合、指定したバインディング制約を使用し、指定した引数リスト、修飾子、カルチャと照合して、指定されたメンバーを呼び出します。When overridden in a derived class, invokes the specified member, using the specified binding constraints and matching the specified argument list, modifiers and culture.

(継承元 Type)
IsArrayImpl()

派生クラスによってオーバーライドされるときに、IsArray プロパティを実装し、Type が配列かどうかを判断します。When overridden in a derived class, implements the IsArray property and determines whether the Type is an array.

(継承元 Type)
IsAssignableFrom(Type)

常に NotSupportedException 例外をスローします。Throws a NotSupportedException exception in all cases.

IsAssignableFrom(Type) (継承元 TypeInfo)
IsAssignableFrom(TypeInfo)

常に NotSupportedException 例外をスローします。Throws a NotSupportedException exception in all cases.

IsAssignableFrom(TypeInfo)

指定した型が現在の型に割り当て可能かどうかを示す値を返します。Returns a value that indicates whether the specified type can be assigned to the current type.

(継承元 TypeInfo)
IsAssignableTo(Type)

現在の型を、指定した targetType の変数に代入できるかどうかを判断します。Determines whether the current type can be assigned to a variable of the specified targetType.

(継承元 Type)
IsByRefImpl()

派生クラスによってオーバーライドされるときに、IsByRef プロパティを実装し、Type が参照渡しかどうかを判断します。When overridden in a derived class, implements the IsByRef property and determines whether the Type is passed by reference.

(継承元 Type)
IsCOMObjectImpl()

派生クラスによってオーバーライドされるときに、IsCOMObject プロパティを実装し、Type が COM オブジェクトかどうかを判断します。When overridden in a derived class, implements the IsCOMObject property and determines whether the Type is a COM object.

(継承元 Type)
IsContextfulImpl()

IsContextful プロパティを実装し、Type をコンテキスト内で管理できるかどうかを判断します。Implements the IsContextful property and determines whether the Type can be hosted in a context.

(継承元 Type)
IsDefined(Type, Boolean)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

IsDefined(Type, Boolean)

派生クラスでオーバーライドされた場合、このメンバーに、指定された型の属性またはその派生型の属性が 1 つ以上適用されているかどうかを示します。When overridden in a derived class, indicates whether one or more attributes of the specified type or of its derived types is applied to this member.

(継承元 MemberInfo)
IsEnumDefined(Object)

指定された値が現在の列挙型に存在するかどうかを示す値を返します。Returns a value that indicates whether the specified value exists in the current enumeration type.

(継承元 Type)
IsEnumDefined(Object) (継承元 TypeInfo)
IsEquivalentTo(Type)

2 つの COM 型が同じ ID を持ち、型の同値の対象になるかどうかを判断します。Determines whether two COM types have the same identity and are eligible for type equivalence.

(継承元 Type)
IsEquivalentTo(Type) (継承元 TypeInfo)
IsInstanceOfType(Object)
IsInstanceOfType(Object)

指定したオブジェクトが現在の Type のインスタンスかどうかを判断します。Determines whether the specified object is an instance of the current Type.

(継承元 Type)
IsInstanceOfType(Object) (継承元 TypeInfo)
IsMarshalByRefImpl()

IsMarshalByRef プロパティを実装し、Type が参照渡しでマーシャリングされるかどうかを判断します。Implements the IsMarshalByRef property and determines whether the Type is marshaled by reference.

(継承元 Type)
IsPointerImpl()

派生クラスによってオーバーライドされるときに、IsPointer プロパティを実装し、Type がポインターかどうかを判断します。When overridden in a derived class, implements the IsPointer property and determines whether the Type is a pointer.

(継承元 Type)
IsPrimitiveImpl()

派生クラスによってオーバーライドされるときに、IsPrimitive プロパティを実装し、Type がプリミティブ型の 1 つかどうかを判断します。When overridden in a derived class, implements the IsPrimitive property and determines whether the Type is one of the primitive types.

(継承元 Type)
IsSubclassOf(Type)

不完全なジェネリック型パラメーターではサポートされていません。Not supported for incomplete generic type parameters.

IsSubclassOf(Type) (継承元 TypeInfo)
IsValueTypeImpl()

IsValueType プロパティを実装するとともに、Type が値型である (つまり、クラスやインターフェイスでない) かどうかを判断します。Implements the IsValueType property and determines whether the Type is a value type; that is, not a class or an interface.

(継承元 Type)
MakeArrayType()

要素型がジェネリック型パラメーターである 1 次元配列の型を返します。Returns the type of a one-dimensional array whose element type is the generic type parameter.

MakeArrayType() (継承元 TypeInfo)
MakeArrayType(Int32)

要素型がジェネリック型パラメーターで、指定の次元数の配列型を返します。Returns the type of an array whose element type is the generic type parameter, with the specified number of dimensions.

MakeArrayType(Int32) (継承元 TypeInfo)
MakeByRefType()

参照パラメーターとして渡されるときに現在のジェネリック型パラメーターを表す Type オブジェクトを返します。Returns a Type object that represents the current generic type parameter when passed as a reference parameter.

MakeByRefType() (継承元 TypeInfo)
MakeGenericType(Type[])

不完全なジェネリック型パラメーターでは使用できません。Not valid for incomplete generic type parameters.

MakeGenericType(Type[]) (継承元 TypeInfo)
MakePointerType()

現在のジェネリック型パラメーターを指すポインターを表す Type オブジェクトを返します。Returns a Type object that represents a pointer to the current generic type parameter.

MakePointerType() (継承元 TypeInfo)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
SetBaseTypeConstraint(Type)

型パラメーターの代わりに使用するために、型が継承する必要のある基本データ型を設定します。Sets the base type that a type must inherit in order to be substituted for the type parameter.

SetCustomAttribute(ConstructorInfo, Byte[])

指定されたカスタム属性の blob を使用して、カスタム属性を設定します。Sets a custom attribute using a specified custom attribute blob.

SetCustomAttribute(CustomAttributeBuilder)

カスタム属性ビルダーを使用して、カスタム属性を設定します。Set a custom attribute using a custom attribute builder.

SetGenericParameterAttributes(GenericParameterAttributes)

パラメーターなしのコンストラクター制約など、ジェネリック パラメーターの分散特性および特殊な制約を設定します。Sets the variance characteristics and special constraints of the generic parameter, such as the parameterless constructor constraint.

SetInterfaceConstraints(Type[])

型パラメーターを置き換えるために、型において実装する必要のあるインターフェイスを設定します。Sets the interfaces a type must implement in order to be substituted for the type parameter.

ToString()

現在のジェネリック型パラメーターの文字列形式を返します。Returns a string representation of the current generic type parameter.

ToString()

現在の String の名前を表す Type を返します。Returns a String representing the name of the current Type.

(継承元 Type)

明示的なインターフェイスの実装

_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(継承元 MemberInfo)
_MemberInfo.GetType()

Type クラスを表す MemberInfo オブジェクトを取得します。Gets a Type object representing the MemberInfo class.

(継承元 MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この型情報を使用して、インターフェイスの型情報を取得できます。Retrieves the type information for an object, which can then be used to get the type information for an interface.

(継承元 MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(継承元 MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 MemberInfo)
_Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(継承元 Type)
_Type.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この型情報を使用して、インターフェイスの型情報を取得できます。Retrieves the type information for an object, which can then be used to get the type information for an interface.

(継承元 Type)
_Type.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(継承元 Type)
_Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 Type)
ICustomAttributeProvider.GetCustomAttributes(Boolean)

名前付きの属性を除く、このメンバーに定義されているすべてのカスタム属性の配列、またはカスタム属性がない場合は空の配列を返します。Returns an array of all of the custom attributes defined on this member, excluding named attributes, or an empty array if there are no custom attributes.

(継承元 MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

型で識別された、このメンバーに定義されているカスタム属性の配列、または、この型のカスタム属性がない場合は空の配列を返します。Returns an array of custom attributes defined on this member, identified by type, or an empty array if there are no custom attributes of that type.

(継承元 MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean)

attributeType の 1 つ以上のインスタンスがこのメンバーで定義されているかどうかを示します。Indicates whether one or more instance of attributeType is defined on this member.

(継承元 MemberInfo)
IReflectableType.GetTypeInfo()

現在の型の表現を TypeInfo オブジェクトとして返します。Returns a representation of the current type as a TypeInfo object.

(継承元 TypeInfo)

拡張メソッド

GetCustomAttribute(MemberInfo, Type)

指定したメンバーに適用される指定した型のカスタム属性を取得します。Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute(MemberInfo, Type, Boolean)

指定したメンバーに適用される指定した型のカスタム属性を取得し、オプションでそのメンバーの先祖を調べます。Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttribute<T>(MemberInfo)

指定したメンバーに適用される指定した型のカスタム属性を取得します。Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute<T>(MemberInfo, Boolean)

指定したメンバーに適用される指定した型のカスタム属性を取得し、オプションでそのメンバーの先祖を調べます。Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo)

指定されたメンバーに適用されるカスタム属性のコレクションを取得します。Retrieves a collection of custom attributes that are applied to a specified member.

GetCustomAttributes(MemberInfo, Boolean)

指定されたメンバーに適用されるカスタム属性のコレクションを取得し、オプションでそのメンバーの先祖を調べます。Retrieves a collection of custom attributes that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo, Type)

指定されたメンバーに適用される指定された型のカスタム属性のコレクションを取得します。Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes(MemberInfo, Type, Boolean)

指定されたメンバーに適用されている指定された型のカスタム属性のコレクションを取得し、オプションでそのメンバーの先祖を調べます。Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes<T>(MemberInfo)

指定されたメンバーに適用される指定された型のカスタム属性のコレクションを取得します。Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes<T>(MemberInfo, Boolean)

指定されたメンバーに適用されている指定された型のカスタム属性のコレクションを取得し、オプションでそのメンバーの先祖を調べます。Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

IsDefined(MemberInfo, Type)

指定された型のカスタム属性が指定されたメンバーに適用されているかどうかを示します。Indicates whether custom attributes of a specified type are applied to a specified member.

IsDefined(MemberInfo, Type, Boolean)

指定された型のカスタム属性が指定されたメンバーに適用され、オプションで先祖に適用されているかどうかを示します。Indicates whether custom attributes of a specified type are applied to a specified member, and, optionally, applied to its ancestors.

GetTypeInfo(Type)

指定された型の TypeInfo 形式を返します。Returns the TypeInfo representation of the specified type.

GetMetadataToken(MemberInfo)

指定されたメンバーのメタデータ トークンを取得します (存在する場合)。Gets a metadata token for the given member, if available.

HasMetadataToken(MemberInfo)

指定されたメンバーに対してメタデータ トークンを使用できるかどうかを示す値を返します。Returns a value that indicates whether a metadata token is available for the specified member.

GetRuntimeEvent(Type, String)

指定したイベントを表すオブジェクトを取得します。Retrieves an object that represents the specified event.

GetRuntimeEvents(Type)

指定した型で定義されるすべてのイベントを表すコレクションを取得します。Retrieves a collection that represents all the events defined on a specified type.

GetRuntimeField(Type, String)

指定したフィールドを表すオブジェクトを取得します。Retrieves an object that represents a specified field.

GetRuntimeFields(Type)

指定した型で定義されるすべてのフィールドを表すコレクションを取得します。Retrieves a collection that represents all the fields defined on a specified type.

GetRuntimeInterfaceMap(TypeInfo, Type)

指定した型とインターフェイスに対するインターフェイスの割り当てを返します。Returns an interface mapping for the specified type and the specified interface.

GetRuntimeMethod(Type, String, Type[])

指定したメソッドを表すオブジェクトを取得します。Retrieves an object that represents a specified method.

GetRuntimeMethods(Type)

指定した型で定義されるすべてのメソッドを表すコレクションを取得します。Retrieves a collection that represents all methods defined on a specified type.

GetRuntimeProperties(Type)

指定した型で定義されるすべてのプロパティを表すコレクションを取得します。Retrieves a collection that represents all the properties defined on a specified type.

GetRuntimeProperty(Type, String)

指定したプロパティを表すオブジェクトを取得します。Retrieves an object that represents a specified property.

GetConstructor(Type, Type[])
GetConstructors(Type)
GetConstructors(Type, BindingFlags)
GetDefaultMembers(Type)
GetEvent(Type, String)
GetEvent(Type, String, BindingFlags)
GetEvents(Type)
GetEvents(Type, BindingFlags)
GetField(Type, String)
GetField(Type, String, BindingFlags)
GetFields(Type)
GetFields(Type, BindingFlags)
GetGenericArguments(Type)
GetInterfaces(Type)
GetMember(Type, String)
GetMember(Type, String, BindingFlags)
GetMembers(Type)
GetMembers(Type, BindingFlags)
GetMethod(Type, String)
GetMethod(Type, String, BindingFlags)
GetMethod(Type, String, Type[])
GetMethods(Type)
GetMethods(Type, BindingFlags)
GetNestedType(Type, String, BindingFlags)
GetNestedTypes(Type, BindingFlags)
GetProperties(Type)
GetProperties(Type, BindingFlags)
GetProperty(Type, String)
GetProperty(Type, String, BindingFlags)
GetProperty(Type, String, Type)
GetProperty(Type, String, Type, Type[])
IsAssignableFrom(Type, Type)
IsInstanceOfType(Type, Object)

適用対象

こちらもご覧ください