c# 反射 调用函数带参
时间: 2024-07-29 15:01:27 浏览: 181
c#使用反射调用类型成员示例
在 C# 中,反射是一种强大的特性,它允许你在运行时动态地获取程序的类型、字段、属性、方法等信息,并能动态地创建、修改和调用这些对象。如果你想通过反射调用函数并传入参数,可以按照以下步骤操作:
1. **获取目标类型的反射对象**:
首先,你需要找到你要调用的那个函数所属的类型,可以使用 `Assembly` 或 `Type` 对象。
```csharp
Type targetType = typeof(TargetClass); // TargetClass是你想要操作的类名
```
2. **查找方法**:
使用 `GetMethod` 函数查找指定名称的方法,如果需要,还可以提供方法的参数列表作为参数。
```csharp
MethodInfo methodInfo = targetType.GetMethod("FunctionName", parameters); // "FunctionName" 是函数名,parameters 是参数数组或空数组(如果无参数)
```
3. **创建反射实例并调用**:
如果你想对静态方法调用,直接使用 `methodInfo.Invoke(null, args)`;如果方法在类实例上,先创建实例,然后调用。
```csharp
object instance = Activator.CreateInstance(targetType);
object result = methodInfo.Invoke(instance, args); // args 是实际传递给方法的参数数组
```
这里的 `args` 就是你准备好的参数值,它们应该匹配方法所期望的参数类型。
阅读全文