我怎么才能让它起作用呢?

C#代码中:

if (condition)
{
    #define CONSTANT
}

我试着在项目文件的<PropertyGroup>部分中通过<DefineConstants Condition="'$condition'"></DefineConstants>来做一些事情.

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

推荐答案

不能;您的运行时代码(if)不能影响编译时指令(#define).你需要使用另一种方法.可以使用您在运行时计算一次的static readonly bool-最新.NET版本上的JIT将usually将其视为const,并在JIT过程中适当地执行死代码删除,使if (SomeStaticReadOnlyOrConst) almost#if SOME_SYMBOL相同.

Csharp相关问答推荐

Rx.Net -当关闭序列被触发时如何聚合消息并发出中间输出?

无法从具有一对多关系的C#类中使用Swagger创建记录

为什么SignalR在每个Blazor服务器应用程序启动时最多启动8个服务器?

模型绑定RazorPage表单

如何使用EF Core和.NET 8来upsert到具有多对多关系的表?

异步实体框架核心查询引发InvalidOperation异常

我的MRG32k3a算法实现返回的数字超出了预期的[0,1]范围

如何在CSharp中将json字符串转换为DataTable?

如何在onNext之前等待订阅者完成?

System.NotSupportdException:流不支持读取

岛屿和框架中的自定义控件库.Navigate-AccessViolationException

如何使用IHostedService添加数据种子方法

正在try 将自定义字体添加到我的控制台应用程序

WPF:如何从DatagridHeader的内容模板绑定到词典项

映射器-如何映射到多个实体

使用C#12中的主构造函数进行空判断

如何阻止可传递依赖项出现在项目中

C#-如何将int引用获取到byte[]

在使用xUnit和Mock执行单元测试时,控制器ViewResult返回空的Model集合

默认架构不存在EF核心迁移