このメソッドのパラメータを返します。
Overrides Public Function GetParameters() As ParameterInfo()
[C#]
public override ParameterInfo[] GetParameters();
[C++]
public: ParameterInfo* GetParameters() [];
[JScript]
public override function GetParameters() : ParameterInfo[];
戻り値
このメソッドのパラメータを表す ParameterInfo オブジェクトの配列。
例外
例外の種類 | 条件 |
---|---|
NotSupportedException | このメソッドは、現在サポートされていません。 GetMethod を使用してメソッドを取得し、返された MethodInfo に対して GetParameters を呼び出します。 |
使用例
[Visual Basic, C#, C++] GetParameters を使用して、動的に生成したメソッドに渡されるパラメータに関する情報を取得する方法については、次のコード例を参照してください。
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
[C#]
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());
}
[C++]
TypeBuilder* myType1 = myModBuilder->DefineType(S"MyMathFunctions",
TypeAttributes::Public);
Type* temp0 [] = {Type::GetType(S"System.Int32&"), __typeof(int)};
MethodBuilder* myMthdBuilder = myType1->DefineMethod(
S"AddToRefValue",
MethodAttributes::Public,
__typeof(void),
temp0);
ParameterBuilder* myParam1 = myMthdBuilder->DefineParameter(
1,
ParameterAttributes::Out,
S"thePool");
ParameterBuilder* myParam2 = myMthdBuilder->DefineParameter(
2,
ParameterAttributes::In,
S"addMeToPool");
// Create body via ILGenerator here, and complete the type.
ParameterInfo* myParams[] = myMthdBuilder->GetParameters();
Console::WriteLine(S"Method: {0}", myMthdBuilder->Name);
System::Collections::IEnumerator* myEnum = myParams->GetEnumerator();
while (myEnum->MoveNext()) {
ParameterInfo* myParam = __try_cast<ParameterInfo*>(myEnum->Current);
Console::WriteLine(S"------- Parameter: {0} {1} at pos {2}, with attribute {3}",
myParam->ParameterType, myParam->Name, __box(myParam->Position), __box(myParam->Attributes));
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
MethodBuilder クラス | MethodBuilder メンバ | System.Reflection.Emit 名前空間