gpt4 book ai didi

c# - C# 中的编译器是否会删除始终为假的条件

转载 作者:行者123 更新时间:2023-11-30 13:18:38 26 4
gpt4 key购买 nike

假设我在 c# 中有以下代码片段

static const bool DO_PERFORMANCE_CODE = false;

if (DO_PERFORMANCE_CODE)
{
// performance monitoring code goes here
}

该代码会被编译器删除吗?这是我想要的功能。基本上我想模仿 C# 中的条件编译的东西,但我想要除 Release 和 Debug 之外的更多配置。如果有更好的方法,我很乐意听取。

最佳答案

当您在“调试”中构建时,预处理器变量 DEBUG 被定义。所以,你可以这样做:

public void MyFunc()
{
//do release stuff
#if DEBUG
//do performance testing
#endif
//finish release stuff
}

当你切换到 Release 模式时,它会被编译器忽略。

或者,如果您不想在 Debug模式下进行测试,您可以定义自己的预处理器变量,确保在您想要测试时使用“#define PERFORMANCE_TESTING”,在您不需要时将其注释掉。

#define PERFORMANCE_TESTING

public void MyFunc()
{
//do release stuff
#if PERFORMANCE_TESTING
//do performance testing
#endif
//finish release stuff
}

关于c# - C# 中的编译器是否会删除始终为假的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/443586/

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