什么样的Lambda Expression有输入但不使用它?

时间:2014-02-19 02:48:01

标签: c# lambda

在工作中,我遇到了这行代码:

String Key = "ThisKey";
Expression<Func<object, object>> test = t => key.ToString();

我理解'test'是一个包含表达式的变量,但是当它没有在lambda运算符的另一端使用时,声明't'是什么意思?

1 个答案:

答案 0 :(得分:2)

因为它被定义为Func<object, object>;如果定义为Func<obj>,则不需要参数。最后一种类型是返回类型,之前的每种类型都是传入的参数类型。请注意,当您执行它时,它将通过以下方式完成:

test(<paramhere>);

test.invoke(<paramhere>);

所以即使它没有在表达式中使用,取决于实际的上下文,底层组件也不知道传入的内容。