C#中有一个函数存在5个参数,想在实际运行中执行此方法时,获取该函数所有的参数名以及对应的参数值
时间: 2024-11-25 15:11:21 浏览: 4
在C#中,你可以通过反射API来获取函数的所有参数名和对应的参数值。当你需要在运行时动态地获取函数信息时,可以这样做:
```csharp
using System;
using System.Reflection;
public delegate void MyFunction(string param1, int param2, bool param3, double param4, string param5);
void Main()
{
// 假设你有一个名为myMethod的目标函数实例
MyFunction myMethod = MyMethodInstance;
// 获取方法的信息
MethodInfo methodInfo = myMethod.Method; // 获取MyFunction类型的MethodInfo
// 获取参数列表和它们的名称
ParameterInfo[] parameters = methodInfo.GetParameters();
Console.WriteLine("参数名和对应值:");
foreach (ParameterInfo parameter in parameters)
{
// 获取参数名
string paramName = parameter.Name;
// 获取参数默认值或传入的实际值,这里假设`GetValue`是一个获取方法值的方法
objectParameterValue = parameter.GetValue(myMethod);
Console.WriteLine($"参数 {paramName}: {objectParameterValue}");
}
}
```
在这个例子中,`GetParameters()`返回一个`ParameterInfo`数组,每个元素代表一个方法参数,包含名字、类型等信息。`GetValue()`方法用于从函数实例中获取参数的实际值。
阅读全文