【发布时间】:2014-05-31 01:17:26
【问题描述】:
我想知道为什么这行代码不能编译:
ILogStuff Logger = (_logMode) ? new LogToDisc() : new LogToConsole();
请注意,LogToDisc 和 LogToConsole 两个类都实现了ILogStuff,而_logMode 是一个布尔变量。我得到的错误信息是:
错误3:无法确定条件表达式的类型,因为'xxx.LogToDisc'和'xxx.LogToConsole'之间没有隐式转换
但是为什么要有一个呢?我错过了什么?
【问题讨论】:
-
使用ReSharper 甚至可以让你不用在这里问这个问题;-)
-
是的,但是据我所知,ReSharper 不是免费软件...
-
那又怎样?支付几百美元(IMO)比在 Stack Overflow 上花费半小时并在工作时间提问更便宜。
-
好吧,如果你是一家大公司的专业程序员,也许可以。但是我发现您的评论对像我这样的所有免费软件/非商业程序员有点不尊重。此外,如果某些工具会向我显示错误,我仍然没有像现在这样学到很多东西,即为什么它会起作用和不应该起作用的具体原因。
标签: c# ternary-operator