MethodBuilder.GetParameters Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí parametry této metody.
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()
Návraty
Pole ParameterInfo
objektů, které představují parametry metody.
Výjimky
Tato metoda není v současné době podporována. Načtěte metodu pomocí GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) a zavolejte GetParameters
na vrácenou MethodInfometodu .
Příklady
Následující ukázka kódu ilustruje použití GetParameters
metody ke zjištění informací o parametrech předaných dynamicky generované metodě.
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