要使用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的方法,該方法具有Out參數。然后,使用MethodInfo獲取方法的引用,并使用Invoke方法調用該方法。調用方法后,Out參數的值將存儲在參數數組中,并通過索引訪問。最后,我們將輸出Out參數的值。
請注意,Out參數在使用Invoke方法時的順序很重要。在參數數組中,Out參數必須是最后一個參數。