【发布时间】:2019-08-23 11:18:34
【问题描述】:
为什么要编译这段代码:
Func<BeExp, IEnumerable<BeExp>> collectFunc;
if (lhs.Kind == BExpKind.BESum)
{
collectFunc = CollectSumTerms;
}
else
{
collectFunc = CollectProdTerms;
}
而这不是?
Func<BeExp, IEnumerable<BeExp>> collectFunc = lhs.Kind == BExpKind.BESum ? CollectSumTerms : CollectProdTerms;
错误:
错误 CS0173 无法确定条件表达式的类型,因为“方法组”和“方法组”之间没有隐式转换
【问题讨论】:
-
我认为是因为当你使用运算符“:”时,左边(当子句为真时)和右边(当它为假时)必须有相同的类型。
标签: c#