Out パラメーターを持つメソッドを呼び出す C# MethodInfo
MethodInfoを利用してOutパラメーターを持つメソッドを呼び出す場合は、Invokeメソッドを使用して、メソッドを呼び出し、パラメーターを渡すことができます。但し、メソッド呼び出し後に値を取得するには、Outパラメーターはオブジェクト配列である必要があります。
サンプルコードを以下に示します。
using System;
using System.Reflection;
public class MyClass
{
public void MyMethod(out int value)
{
value = 42;
}
}
public class Program
{
public static void Main(string[] args)
{
// 创建一个实例
MyClass myObject = new MyClass();
// 获取方法的MethodInfo
MethodInfo methodInfo = typeof(MyClass).GetMethod("MyMethod");
// 创建一个参数数组,用于在调用方法后检索Out参数的值
object[] parameters = new object[] { null };
// 调用方法
methodInfo.Invoke(myObject, parameters);
// 从参数数组中获取Out参数的值
int outValue = (int)parameters[0];
// 输出Out参数的值
Console.WriteLine(outValue);
}
}
このコードではMyMethodというアウトパラメータを持つメソッドが作成されます。次に、MethodInfoを使用してメソッドの参照を取得し、Invokeメソッドを使用してそのメソッドを呼び出します。メソッドの呼び出し後、アウトパラメータの値はパラメータ配列に格納され、インデックスでアクセスされます。最後に、アウトパラメータの値を出力します。
Invokeメソッド使用時にアウトパラメータの順番に注意してください。パラメータの配列では、アウトパラメータを最後のパラメータにする必要があります。