我想知道两者之间有什么区别
#define MYSYMBOL
#if MYSYMBOL
public void foo () {
// ...
}
#endif
and
#define MYSYMBOL
[Conditional("MYSYMBOL")]
public void foo () {
// ...
}
?
也许这是显而易见的,但如果有人能给我正确方向的提示,我将不胜感激:)
他们是不同的。
Using #if
完全删除包含的代码,因此调用该方法的任何代码都不会编译,因为该方法已消失。您还可以通过这种方式包装任意数量的代码,而不仅仅是单个完整方法。
Using [Conditional]
意味着该方法不会在运行时调用,但对其的调用仍会编译(但调用不会在 IL 代码中发出)。另外,这样,该方法必须返回void
并且没有任何out
or ref
参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)