c# type.GetMethod().Invoke(object,object[])
时间: 2024-12-15 08:15:20 浏览: 22
在 C# 中,`Type.GetMethod()` 和 `MethodInfo.Invoke()` 是两个重要的方法,用于动态地调用对象的方法。`GetMethod(string methodName)` 函数接收一个方法名作为参数,从给定类型的 `Type` 对象中查找匹配的方法,返回一个 `MethodInfo` 对象,该对象包含了方法的信息。
而 `Invoke(object targetObject, object[] parameters)` 方法则用于执行找到的方法。它需要两个参数:
1. `targetObject`: 要执行方法的对象实例。通常是你想要调用方法的那个对象引用。
2. `parameters`: 一个对象数组,包含了执行方法所需的参数值。
当你有方法的名称、类的类型以及所需的参数时,可以组合这两个方法来动态地调用任何实现了那个方法的对象。例如,在运行时不确定具体方法的名称或参数的情况下,这非常有用。
```csharp
Type t = typeof(MyClass); // MyClass是你想操作的类
string methodName = "MyMethod"; // 想要调用的具体方法名
MethodInfo method = t.GetMethod(methodName);
object result;
if (method != null)
{
object instance = Activator.CreateInstance(t); // 创建类的实例
result = method.Invoke(instance, new object[] { param1, param2 }); // 实例化并调用方法
}
```
阅读全文