【发布时间】:2021-01-16 19:27:27
【问题描述】:
例子:
#if DEBUG
float testVar;
#endif
[Conditional("DEBUG")]
void TestFunc()
{
testVar = 3;
}
如您所见,我正在尝试访问 DEBUG 预处理器 if 语句中的变量。但不幸的是,这会导致发布模式下的编译错误。有没有办法使这项工作在发布模式下不必用预处理器 if 语句包围 TestFunc() 的每个调用?
【问题讨论】:
-
为什么不用
#if DEBUG包围赋值语句 -
我觉得这里的一切都很酷。你得到什么样的编译错误?您确定存在有效的“DEBUG”解决方案配置吗?
-
@godot "你得到什么样的编译错误?"如果您仔细查看我写的文字:“但不幸的是,这会导致发布模式下的编译错误”,我提到错误是在发布模式下。我希望它在发布和调试模式下都能工作。
-
@KlausGütter 这是一种方法,但我想避免在我的代码中包含许多这些预处理器语句。在我给出的这个例子中它可以正常工作,但在更复杂的例子中,变量在许多不同的地方使用,它会变得非常混乱。
标签: c# function variables debugging preprocessor