如何传入Lambda表达式调用函数?附C#代码示例
如何用Lambda表达式调用接收Func<string, string>的方法
首先明确:Func<string, string>是C#里的委托类型,代表接受一个string参数、返回string结果的方法,你要调用的add方法正是接收这种委托作为参数。
你写的add((val) => "hello")本身就是合法的调用方式,还可以根据情况简化:
- 省略参数类型:编译器能根据委托类型自动推断参数
val是string类型,可写成:add(val => "hello") - 如果Lambda里根本没用到这个参数(比如你这里直接返回"hello",完全没使用
val),可以用下划线_代替参数名,更清晰表示参数未被使用:add(_ => "hello")
另外要注意:你的类里必须定义一个Func<string, string>类型的字段textval,否则textval = val;这行代码会报错,完整的类结构示例如下:
public class YourClass { // 定义对应类型的字段 private Func<string, string> textval; public void add(Func<string, string> val) { textval = val; } }
调用时只需创建类实例,再用上述Lambda写法调用即可:
var obj = new YourClass(); obj.add(_ => "hello");
内容的提问来源于stack exchange,提问作者redoc01
相关产品推荐
相关产品推荐

