Partager via


MethodBuilder.GetParameters Méthode

Définition

Retourne les paramètres de cette méthode.

public:
 override cli::array <System::Reflection::ParameterInfo ^> ^ GetParameters();
public override System.Reflection.ParameterInfo[] GetParameters ();
override this.GetParameters : unit -> System.Reflection.ParameterInfo[]
Public Overrides Function GetParameters () As ParameterInfo()

Retours

Tableau d’objets ParameterInfo qui représentent les paramètres de la méthode.

Exceptions

Cette méthode n’est pas prise en charge pour l’instant. Récupérez la méthode à l’aide de GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) et appelez GetParameters sur le MethodInfo retourné.

Exemples

L’exemple de code ci-dessous illustre l’utilisation de GetParameters pour découvrir des informations sur les paramètres passés à une méthode générée dynamiquement.

TypeBuilder^ myType1 = myModBuilder->DefineType( "MyMathFunctions", TypeAttributes::Public );
array<Type^>^temp0 = {Type::GetType( "System.Int32&" ),int::typeid};
MethodBuilder^ myMthdBuilder = myType1->DefineMethod( "AddToRefValue", MethodAttributes::Public, void::typeid, temp0 );
ParameterBuilder^ myParam1 = myMthdBuilder->DefineParameter( 1, ParameterAttributes::Out, "thePool" );
ParameterBuilder^ myParam2 = myMthdBuilder->DefineParameter( 2, ParameterAttributes::In, "addMeToPool" );

// Create body via ILGenerator here, and complete the type.
array<ParameterInfo^>^myParams = myMthdBuilder->GetParameters();
Console::WriteLine( "Method: {0}", myMthdBuilder->Name );

for each (ParameterInfo^ myParam in myParams)
{
   Console::WriteLine("------- Parameter: {0} {1} at pos {2}, with attribute {3}", 
      myParam->ParameterType, myParam->Name, myParam->Position,
            myParam->Attributes.ToString());
}

TypeBuilder myType1 = myModBuilder.DefineType("MyMathFunctions",
                TypeAttributes.Public);

MethodBuilder myMthdBuilder = myType1.DefineMethod("AddToRefValue",
                MethodAttributes.Public,
                typeof(void),
                new Type[] { Type.GetType("System.Int32&"),
                         typeof(int) });
ParameterBuilder myParam1 = myMthdBuilder.DefineParameter(1,
                ParameterAttributes.Out,
                "thePool");
ParameterBuilder myParam2 = myMthdBuilder.DefineParameter(2,
                ParameterAttributes.In,
                "addMeToPool");

// Create body via ILGenerator here, and complete the type.

ParameterInfo[] myParams = myMthdBuilder.GetParameters();

Console.WriteLine("Method: {0}", myMthdBuilder.Name);

foreach (ParameterInfo myParam in myParams)
    {
   Console.WriteLine("------- Parameter: {0} {1} at pos {2}, with attribute {3}",
             myParam.ParameterType, myParam.Name, myParam.Position,
             myParam.Attributes.ToString());
    }
Dim myType1 As TypeBuilder = myModBuilder.DefineType("MyMathFunctions", _
                      TypeAttributes.Public)

Dim myMthdBuilder As MethodBuilder = myType1.DefineMethod("AddToRefValue", _
          MethodAttributes.Public, Nothing, _
          New Type() {Type.GetType("System.Int32&"), GetType(Integer)})

Dim myParam1 As ParameterBuilder = myMthdBuilder.DefineParameter(1, _
                  ParameterAttributes.Out, "thePool")

Dim myParam2 As ParameterBuilder = myMthdBuilder.DefineParameter(2, _
                  ParameterAttributes.In, "addMeToPool")

' Create body via ILGenerator here, and complete the type.

Dim myParams As ParameterInfo() = myMthdBuilder.GetParameters()

Console.WriteLine("Method: {0}", myMthdBuilder.Name)

Dim myParam As ParameterInfo
For Each myParam In  myParams
   Console.WriteLine("------- Parameter: {0} {1} at pos {2}, with attribute {3}", _
          myParam.ParameterType, myParam.Name, myParam.Position, _
          myParam.Attributes.ToString())
Next myParam

S’applique à