使用lambda表达式指定方法的参数

本文关键字:方法 参数 lambda 表达式 使用 | 更新日期: 2023-09-27 18:14:45

给定方法的MethodInfo,我如何使用lambda表达式来指定参数(ParameterInfo)?

例如,给定以下方法签名:

public string DoSomething(int id, int count);

我想有一个方法:

WithParameter(MethodInfo info, Expression<???> expression);

可以这样调用:

WithParameter(doSomethingMethodInfo, x => x.id) 

这可能吗?

使用lambda表达式指定方法的参数

如果您想以静态安全的方式指定参数名,这是不可能的。
两个原因:

  1. c#一般不支持
  2. 参数
  3. MethodInfo已丢失所有静态类型信息
根据您的最终目标,可以选择不同的方法。