C# - 在 [Conditional("DEBUG")] 函数中访问预处理器调试变量
C# - Accessing preprocessor debug variables inside of [Conditional("DEBUG")] functions
示例:
#if DEBUG
float testVar;
#endif
[Conditional("DEBUG")]
void TestFunc()
{
testVar = 3;
}
如您所见,我正在尝试访问 DEBUG 预处理器 if 语句中的变量。但不幸的是,这会导致发布模式下的编译错误。有没有办法使它在发布模式下工作 而不必用预处理器 if 语句包围 TestFunc() 的每个调用?
一种选择是使用 属性,它在发布版本中没有支持字段:
#if DEBUG
float testVar { get; set; }
#else
float testVar
{
get { return 0.0F; }
set { throw NotImpementedException(); }
}
#endif
这使得对 testVar
的访问在语法上是合法的,但不会消耗任何实例内存。
示例:
#if DEBUG
float testVar;
#endif
[Conditional("DEBUG")]
void TestFunc()
{
testVar = 3;
}
如您所见,我正在尝试访问 DEBUG 预处理器 if 语句中的变量。但不幸的是,这会导致发布模式下的编译错误。有没有办法使它在发布模式下工作 而不必用预处理器 if 语句包围 TestFunc() 的每个调用?
一种选择是使用 属性,它在发布版本中没有支持字段:
#if DEBUG
float testVar { get; set; }
#else
float testVar
{
get { return 0.0F; }
set { throw NotImpementedException(); }
}
#endif
这使得对 testVar
的访问在语法上是合法的,但不会消耗任何实例内存。