阅读量:0
要使用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参数必须是最后一个参数。