问题标签 [compiler-constants]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3607 浏览

.net - 在构建事件中使用编译器常量

无论如何在 Visual Studio - VB.NET 的构建事件中使用编译器常量?(尤其是在构建后事件中)

设想

如果TEST_EDITION=TRUE已定义,我想在 Post-Build 事件期间运行一个可执行文件,所以如果是,FALSE那么我将运行其他东西。

这可用于为不同版本创建不同的安装程序。

PS 在有人建议之前:不,我不想使用 nant、msbuild 或类似的东西

0 投票
7 回答
6982 浏览

delphi - Delphi:所有常数都是常数,但有些常数比其他常数?

考虑:

以及有效的替代措辞:

解释。


然后考虑:

并修复。

编辑:const在声明前添加关键字;有人不相信他们是常量。

0 投票
3 回答
1326 浏览

c# - 是否可以在 C# 运行时检查编译器常量?

我知道我可以通过有条件地包含如下代码来有条件地设置变量:

我宁愿在运行时枚举或测试编译器常量。

例如,我想将编译时定义的所有符号放在窗口标题中,以便测试人员可以看到他们正在测试哪个构建。

0 投票
0 回答
106 浏览

asp.net - vb.net 网站项目中的自定义编译器内容

我正在 vb.net - asp.net 4 - visual studio 2010 上开发一个网站项目。

我需要实现仅在 Visual Studio 中选择调试编译时使用的部分代码,例如:

不幸的是,这不是一个 Web 应用程序项目,因此它没有完整的“属性页面”(您可以在其中轻松更改编译器常量)。

谷歌搜索答案,我发现:http: //msdn.microsoft.com/en-us/library/a15ebt6c%28v=vs.100%29.aspx

..我以这种方式更改了我的 web.config:

不幸的是,即使它编译得很好,也永远不会定义 DEBUGCONST 并且永远不会执行“调试代码”。

有什么我想念的吗?

预先感谢您的任何帮助!

0 投票
1 回答
3371 浏览

enums - SystemVerilog:为什么不能在常量函数中使用枚举 next() 方法?

我有一个包含许多打包结构类型定义的包,我正在尝试编写一个 CONSTANT 函数来告诉我这些结构的最大位宽。每个结构都有一个明确的 message_type 枚举。我相信我编写的以下函数应该被编译器解释为常​​量,但我收到错误“(vlog-2118)函数'get_max_message_length'不是有效的常量函数”(这是在ModelSim中)。

谁能告诉我为什么这个函数不是恒定的?调试后,我确定是枚举方法“next()”导致它被解释错误。任何可能的替代解决方案?先感谢您!

0 投票
2 回答
183 浏览

c++ - 是否有一个预处理器宏可以让我知道应用程序是控制台类型还是其他类型?

我要给我写一个小print( )函数。
但是,在所述功能中,我必须确定我是否正在处理独立于操作系统的控制台应用程序。
(主要用于决定是否使用std::cout或与操作系统相关的MessageBox实现。)

如果没有自动生成的常量,是否还有另一种适合多平台兼容的方式?

我会将它包含在一个库中,这意味着我不知道将使用哪个编译器或哪个 IDE。

0 投票
2 回答
58 浏览

objective-c - #define 这个自我有什么后果吗?

长期以来,Objective C 决定使用self而不是this. 现在,我想通过将这段代码放在我的程序开始处或附近的某个地方来结束这种挫败感:

我知道这会编译,并且可能会按我的预期工作。但是,我不禁认为这会带来……无法预料的后果。这是安全的做法,还是在我试图解决的简单问题之外还会出现问题?

0 投票
0 回答
48 浏览

c# - 检查 app.config 中的编译器常量

在我的 C# 项目中,我到处都有一些看起来像这样的代码:

这些使我能够部署我的应用程序的两个略有不同的版本。

我使用log4net将信息记录到文本文件,并且我想更改我的应用程序不同版本的日志记录级别。通常,这样的事情是在app.config文件中控制的,如下所示:

有没有办法完成我在 C# 源文件中所做的事情app.config?为了说明,我想基本上这样做:

有没有办法检查任意编译器常量app.config

0 投票
1 回答
107 浏览

c# - 基于 PER-FILE 的 C# 编译器常量?

是否可以在 PER-FILE/project-item 基础上定义编译器常量?

背景:我想实现一个数据库抽象层(DAL),它将所有读取和写入任务分开,但保留一个可以同时执行这两个任务的 DAL,但无需多次实现相同的方法(抽象类意味着将有 1 个实例类对于每种支持的数据库类型)。

所以我想像这样分离我的 DAL:

不幸的是,这不起作用,因为 C# 不支持多重继承。

所以解决这个问题的一种方法是定义接口:

但是,如果这样做,每次更改其中一个 DAL 中的方法时都必须更改接口定义,并更改 ReadWriteDAL 中定义的方法,并且必须将方法实现复制粘贴到某处,这意味着会有一个 DRY-non-compliance 混乱。

我想我可以做的是第二次添加相同的文件作为链接,并在每个项目项的基础上进行定义:

但是我可以以某种方式为每个文件定义一个编译器常量吗?
或者以某种方式达到类似的效果?