有条件地定义预处理器指令常量

问题描述 投票:0回答:1

我怎样才能让它发挥作用?

C#
代码中:

if (condition)
{
    #define CONSTANT
}

我尝试在项目文件的

<DefineConstants Condition="'$condition'"></DefineConstants>
部分中通过
<PropertyGroup>
执行某些操作。

但是它不会起作用,因为条件将基于我们在程序构建后知道的东西。

c# if-statement conditional-statements
1个回答
0
投票

不;您的运行时代码 (

if
) 不能影响编译时指令 (
#define
)。您需要使用另一种方法。也许使用在运行时计算一次的
static readonly bool
- 最新 .NET 版本上的 JIT 通常会将其视为 const
,并适当地执行死代码删除,使得 
if (SomeStaticReadOnlyOrConst)
 
几乎#if SOME_SYMBOL
 相同。

© www.soinside.com 2019 - 2024. All rights reserved.