MethodBase.GetParameters メソッド
派生クラスによってオーバーライドされた場合に、指定したメソッドまたはコンストラクタのパラメータを取得します。
Public MustOverride Function GetParameters() As ParameterInfo()
[C#]
public abstract ParameterInfo[] GetParameters();
[C++]
public: virtual ParameterInfo* GetParameters() [] = 0;
[JScript]
public abstract function GetParameters() : ParameterInfo[];
戻り値
この MethodBase インスタンスでリフレクションされたメソッド (またはコンストラクタ) のシグネチャと一致する情報を格納している ParameterInfo 型の配列。
使用例
' The following example uses instances of classes in
' the System.Reflection namespace to discover an event argument type.
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic
Public Class MainClass
Delegate Sub MyDelegate(ByVal i As Integer)
Public Event ev As MyDelegate
Public Sub Fire(ByVal i As Integer)
AddHandler ev, AddressOf Me.Fire
End Sub 'Fire
Public Shared Sub Main()
Dim deleg As Type = GetType(MainClass).GetEvent("ev").EventHandlerType
Dim invoke As MethodInfo = deleg.GetMethod("Invoke")
Dim pars As ParameterInfo() = invoke.GetParameters()
Dim p As ParameterInfo
For Each p In pars
Console.WriteLine(p.ParameterType)
Next p
End Sub 'Main
End Class 'MainClass
[C#]
// The following example uses instances of classes in
// the System.Reflection namespace to discover an event argument type.
using System;
using System.Reflection;
public delegate void MyDelegate(int i);
public class MainClass
{
public event MyDelegate ev;
public void Fire(int i)
{
ev += new MyDelegate(this.Fire);
}
public static void Main()
{
Type deleg = typeof(MainClass).GetEvent("ev").EventHandlerType;
MethodInfo invoke = deleg.GetMethod("Invoke");
ParameterInfo[] pars = invoke.GetParameters();
foreach (ParameterInfo p in pars)
{
Console.WriteLine(p.ParameterType);
}
}
}
[C++]
// The following example uses instances of classes in
// the System::Reflection namespace to discover an event argument type.
#using <mscorlib.dll>
using namespace System;
using namespace System::Reflection;
public __delegate void MyDelegate(int i);
public __gc class MainClass {
public:
__event MyDelegate* ev;
public:
void Fire(int i) {
ev += new MyDelegate(this, &MainClass::Fire);
}
};
int main() {
Type* deleg = __typeof(MainClass)->GetEvent(S"ev")->EventHandlerType;
MethodInfo* invoke = deleg->GetMethod(S"Invoke");
ParameterInfo* pars[] = invoke->GetParameters();
System::Collections::IEnumerator* myEnum = pars->GetEnumerator();
while (myEnum->MoveNext()) {
ParameterInfo* p = __try_cast<ParameterInfo*>(myEnum->Current);
Console::WriteLine(p->ParameterType);
}
}
[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 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard
.NET Framework セキュリティ:
- ReflectionPermission (Type.InvokeMember などの機構を通じて遅延バインディングで呼び出すときに必要なアクセス許可) ReflectionPermissionFlag.MemberAccess (関連する列挙体)
参照
MethodBase クラス | MethodBase メンバ | System.Reflection 名前空間 | ParameterInfo