我有一个很大的C#类,除了public const string
字段之外什么都没有。但是,在一种情况下,我试图将字符串和枚举值连接到const string
字段,如下所示:
public const string GET_VALUES = "SELECT * FROM [tbl] WHERE [id] = " + Enum.Val;
但是,我得到了这个编译错误:
'Namespace.SqlStatements.GET_VALUES' must be constant
我知道我可以删除const
子句,但我希望保持此类中的所有字段一致。是否可以在C#中连接常量字符串和枚举?
答案 0 :(得分:5)
来自MSDN:
常量表达式是一个可以在编译时完全计算的表达式。因此,引用类型常量的唯一可能值是字符串和空引用。
在您的情况下,必须使用ToString
将枚举转换为字符串,这在编译时是不可能的。我建议你把它改成readonly
,就像elgonzo所说的那样。