MethodBuilder.GetParameters Metode

Definisi

Mengembalikan parameter metode ini.

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()

Mengembalikan

Array ParameterInfo objek yang mewakili parameter metode .

Pengecualian

Metode ini saat ini tidak didukung. Ambil metode menggunakan GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) dan panggil GetParameters pada yang dikembalikan MethodInfo.

Contoh

Sampel kode di bawah ini menggambarkan penggunaan GetParameters untuk menemukan informasi tentang parameter yang diteruskan ke metode yang dihasilkan secara dinamis.


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

Berlaku untuk