C#methodInfo.Invoke的返回值
时间: 2024-09-07 17:04:47 浏览: 112
C#中的`MethodInfo.Invoke`方法用于在运行时调用由`MethodInfo`对象表示的特定方法。它允许你通过反射来动态调用方法,并且可以指定方法的参数。
当你调用`MethodInfo.Invoke`时,它的返回值取决于被调用方法的返回类型。如果方法返回一个值,`Invoke`也会返回一个相应的对象。如果方法返回的是`void`,则`Invoke`返回`null`。
在使用`Invoke`时,你需要提供两个参数:第一个参数是要调用方法的对象实例,第二个参数是一个包含所有方法参数的数组(如果方法是静态的,则第一个参数为`null`)。需要注意的是,因为`Invoke`是动态调用方法,所以方法参数的类型必须与方法声明中的类型匹配,否则会抛出异常。
这里是一个简单的例子,展示了如何使用`MethodInfo.Invoke`:
```csharp
using System;
using System.Reflection;
public class Program
{
public static void Main()
{
MethodInfo methodInfo = typeof(MyClass).GetMethod("MyMethod");
MyClass myObject = new MyClass();
// 假设MyMethod返回一个int值
object result = methodInfo.Invoke(myObject, new object[]{});
// 输出方法返回的结果
Console.WriteLine(result);
}
}
public class MyClass
{
public int MyMethod()
{
return 42;
}
}
```
阅读全文