在工作中,我遇到了这行代码:
String Key = "ThisKey";
Expression<Func<object, object>> test = t => key.ToString();
我理解'test'是一个包含表达式的变量,但是当它没有在lambda运算符的另一端使用时,声明't'是什么意思?
答案 0 :(得分:2)
因为它被定义为Func<object, object>
;如果定义为Func<obj>
,则不需要参数。最后一种类型是返回类型,之前的每种类型都是传入的参数类型。请注意,当您执行它时,它将通过以下方式完成:
test(<paramhere>);
或
test.invoke(<paramhere>);
所以即使它没有在表达式中使用,取决于实际的上下文,底层组件也不知道传入的内容。