连接常量字符串和枚举

Oli*_*ryn 5 c# string enums const

我有一个很大的C#类,除了public const string字段之外什么都没有.但是,在一种情况下,我试图将字符串和枚举值连接到const string字段中,如下所示:

public const string GET_VALUES = "SELECT * FROM [tbl] WHERE [id] = " + Enum.Val;
Run Code Online (Sandbox Code Playgroud)

但是,我收到此编译器错误:

'Namespace.SqlStatements.GET_VALUES' must be constant
Run Code Online (Sandbox Code Playgroud)

我知道我可以删除该const条款,但我想保持这个类中的所有字段一致.是否可以在C#中连接常量字符串和枚举?

Chr*_*ris 5

来自MSDN:

常量表达式是一个可以在编译时完全计算的表达式.因此,引用类型常量的唯一可能值是string和null引用.

在您的情况下,枚举必须使用转换为字符串ToString,这在编译时是不可能的.我建议你把它readonly改成elgonzo提到的.