我正在用 C# 编写代码,相当积极地使用 .NET 反射,包括 Mono 中尚不可用的一些功能。我处理这个问题的简单方法是使用少量条件:
#if MONO
... stuff that works on mono ....
#else
... stuff that works on .NET 4.0 but not (yet) on mono ...
#endif
所以这是我的问题:是否有任何预定义的标志我可以这样测试,或者 Mono csharp 编译器会自动定义,或者如果没有,.NET csharp 编译器预定义,我可以这样测试?
它需要是一个编译时测试(我知道如何在运行时确定平台,但这为时已晚)