连接常量字符串和枚举

时间:2014-07-25 10:36:32

标签: c# string enums const

我有一个很大的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#中连接常量字符串和枚举?

1 个答案:

答案 0 :(得分:5)

来自MSDN:

  

常量表达式是一个可以在编译时完全计算的表达式。因此,引用类型常量的唯一可能值是字符串和空引用。

在您的情况下,必须使用ToString将枚举转换为字符串,这在编译时是不可能的。我建议你把它改成readonly,就像elgonzo所说的那样。