【发布时间】:2010-10-26 19:25:14
【问题描述】:
我可以这样做:
Func<CategorySummary, decimal> orderByFunc;
if (orderBy == OrderProductsByProperty.Speed)
orderByFunc = x => x.Speed;
else
orderByFunc = x => x.Price;
为什么我不能这样做:
Func<CategorySummary, decimal> orderByFunc = (orderBy == OrderProductsByProperty.Speed) ? x => x.Speed : x => x.Price;
【问题讨论】:
-
语言规范要求条件表达式的类型是已知的。条件表达式的类型取决于结果和替代的类型,但在您的情况下,它们都没有类型——lambdas 是无类型的。
标签: c#