gpt4 book ai didi

c# - 条件 ("Debug") + #if DEBUG

转载 作者:太空狗 更新时间:2023-10-29 18:02:52 28 4
gpt4 key购买 nike

我在 Debugging .net 2.0 Applications 中看到了以下代码

[Conditional("DEBUG")]
void AssertTableExists() {
#if DEBUG
...
#endif
}

是否有理由使用#if 指令?我的意思是,据我所知,只有在定义了 DEBUG 时才会调用该方法,所以我看不出在方法主体中包含 #if 有什么意义。

最佳答案

巧合的是,我上周刚好在我的博客上回答了你的问题。

http://ericlippert.com/2009/09/10/whats-the-difference-between-conditional-compilation-and-the-conditional-attribute/

如果方法的主体引用了自己在#if DEBUG 指令下声明的实体,则#if 指令是必需的。例如

#if DEBUG
static private int testCounter = 1;
#endif

[Conditional("DEBUG")] void CheckConsistency()
{
#if DEBUG
testCounter++;
#endif
...

如果您在方法主体中省略了 #if DEBUG,则不会在发布版本中编译。

关于c# - 条件 ("Debug") + #if DEBUG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1452335/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com