0

是否可以使用#if 编译器指令来省略类的属性?

我有两个使用共享项目的项目,我想将一些属性添加到我不希望另一个看到的共享类中。

我尝试在项目中添加条件编译符号,例如 MYSYMBOL

然后在我的课堂上这样做:

#if MYSYMBOL

public string MySpecialProperty { get; set; }

#endif

它可以编译,但两个项目都看不到 MySpecialProperty ,而显然我希望定义了 MYSYMBOL 的项目能够访问此属性...

4

1 回答 1

0

MYSYMBOL必须在编译项目中定义才能使属性可见。因此,如果您有一个公共库项目,您可以在那里定义它,也可以不在那里定义它。因此,无论您在哪个消费项目中使用该库,编译后的库都将始终包含该属性或不包含该属性。

如果您想要不同的行为,则必须在两个使用项目中编译该类。您可以将相同的源文件添加到两个项目并使用不同的定义对其进行编译。

于 2013-10-04T11:08:10.703 回答