连接常量字符串和枚举

本文关键字:枚举 字符串 常量 连接 | 更新日期: 2023-09-27 18:14:53

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

连接常量字符串和枚举

From MSDN:

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

在您的示例中,必须使用ToString将枚举转换为字符串,这在编译时是不可能的。我建议你把它改成readonly,就像elgonzo提到的。