如何检测我在mono-service2下运行?(在C#/ .NET 3.5中,在ubuntu 11上运行mono 2.6.7)
Type.GetType("Mono.Runtime")
告诉我我正在单声道运行,所以那部分还可以.但是Environment.UserInteractive
在单声道下看起来总是假的,所以我很难弄清楚我是否真的在mono-service2下运行 - 没有控制台/终端.
假设两个类,都是同一个超类的后代,如下所示:
class MySuperClass{}
class A : MySuperClass{}
class B : MySuperClass{}
Run Code Online (Sandbox Code Playgroud)
然后这个赋值不会通过编译器:
MySuperClass p = myCondition ? new A() : new B();
Run Code Online (Sandbox Code Playgroud)
编译器抱怨A和B不兼容(无法确定条件表达式的类型,因为'A'和'B'之间没有隐式转换 [CS0173]).但它们都是MySuperClass类型,所以在我看来这应该有效.不是说这是一个大问题; 只需要一个简单的强制转换即可启发编译器.但肯定是C#编译器的一个障碍?你不同意吗?