首页 > 解决方案 > 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 表达式是由编译器传播的,但在这种特殊情况下,可以很容易地静态创建字符串,因为它只依赖于其他常量。

所以也许有人可以向我解释为什么这还不是该语言的一个特征?或者甚至,为什么我问这样一个问题很愚蠢..

提前致谢。:)

标签: c#stringconstantsconstant-expression

解决方案


出现此错误是因为$字符串前面的符号是调用String.Format(). String.Format()作为一个方法,它的返回值不能存储在一个常量中。


推荐阅读