c# - C# 字符串必须是常量
问题描述
我正在写这段代码:
public const int MAJOR_VERSION = 3;
public const int MINOR_VERSION = 3;
public const string VERSION_STRING = $"v.{MAJOR_VERSION}{MINOR_VERSION}";
而且,也许并不奇怪,编译器抱怨:
“分配给 VERSION_STRING 的表达式必须是常量”
我知道 const 表达式是由编译器传播的,但在这种特殊情况下,可以很容易地静态创建字符串,因为它只依赖于其他常量。
所以也许有人可以向我解释为什么这还不是该语言的一个特征?或者甚至,为什么我问这样一个问题很愚蠢..
提前致谢。:)
解决方案
出现此错误是因为$
字符串前面的符号是调用String.Format()
. String.Format()
作为一个方法,它的返回值不能存储在一个常量中。
推荐阅读
- ruby-on-rails - 如何将通过 cron 任务调用的 Rails Rake 任务输出移植到 Rails 生产服务器输出?
- protractor - Angular 8 - ng e2e 不适用于默认的 chrome 驱动程序
- raspberry-pi3 - 无法从 EM18 + Raspberrypi 持续读取 RFID 卡
- laravel - Laravel 模型工厂 make() 在外键对象创建中绕过 create()
- vba - 使用VBA从excel粘贴后如何在Powerpoint中重命名形状
- azure - 如何更改 Azure CDN 上的 MIME 类型
- performance-testing - 如何使用空手道向 Galting 测试添加断言?
- c++ - 将数据从 std::Vector 存储到 Eigen::Vector 时出错
- python - 如何在旧 MinMaxScale 上重新调整新数据库?
- python-3.x - Pandas:遍历数据框并根据条件应用更改