【发布时间】:2013-10-11 06:10:51
【问题描述】:
是否可以使用#if 编译器指令来省略类的属性?
我有两个使用共享项目的项目,我想向一个共享类添加一些我不希望另一个看到的属性。
我尝试在项目中添加条件编译符号,例如我的符号
然后在我的课堂上这样做:
#if MYSYMBOL
public string MySpecialProperty { get; set; }
#endif
它可以编译,但两个项目都看不到 MySpecialProperty,而显然我希望定义了 MYSYMBOL 的项目能够访问此属性...
【问题讨论】:
-
为什么不在第二个项目中继承这个类来添加两个新属性呢?如果它们是有条件的,则您的基础项目无法在内部非常有效地使用这两个属性。使它们有条件的需要似乎是一种设计气味。
-
@AdamHouldsworth 感谢您的建议,但我只是想知道我所问的是否可行 :-)
标签: c# c-preprocessor conditional-compilation