C#通过反射调用有参数的方法
时间: 2023-08-10 13:02:22 浏览: 184
C#高效反射调用方法类实例详解
在C#中,使用反射调用有参数的方法需要以下步骤:
1. 获取该方法的MethodInfo对象,可以通过Type.GetMethod方法获取。
2. 通过MethodInfo对象的Invoke方法调用该方法,并传递参数。
下面是一个示例代码:
```csharp
using System;
using System.Reflection;
public class MyClass
{
public void MyMethod(string arg1, int arg2)
{
Console.WriteLine("arg1 = {0}, arg2 = {1}", arg1, arg2);
}
}
class Program
{
static void Main(string[] args)
{
// 创建一个MyClass对象
MyClass obj = new MyClass();
// 获取MyMethod方法的MethodInfo对象
MethodInfo method = obj.GetType().GetMethod("MyMethod");
// 调用MyMethod方法,并传递参数
method.Invoke(obj, new object[] { "hello", 123 });
Console.ReadLine();
}
}
```
在上面的代码中,我们首先创建了一个`MyClass`对象,然后获取了`MyMethod`方法的`MethodInfo`对象。接着,我们通过`Invoke`方法调用了`MyMethod`方法,并传递了两个参数。最后,程序输出了`arg1 = hello, arg2 = 123`。
阅读全文