是否有一个类似的条件不存在属性,或者可能有一种方法使用条件属性来仅包含未定义符号的方法?
我要找的是这样的东西:

[Conditional("!SILVERLIGHT")]
private void DoStuffThatSilverlightCant() {...}

如果符号SILVERLIGHT确实存在,则该方法将不被包含。
我不想使用简单的#ifdef是为了利用编译器删除调用语句的优势,而不必将每个单独的调用包装在#ifdef中。

最佳答案

更新:
下面的代码片段仅在每个调用文件中都有if时才起作用,这不太实际。

#if !SILVERLIGHT
#define NOT_SILVERLIGHT
#endif

[Conditional("NOT_SILVERLIGHT")]
private void DoStuffThatSilverlightCant() {...}

但是,可以做的是为您使用的任何平台提供构建配置,该平台将/定义所需的符号(在这种情况下不是silverlight)。

10-02 15:04