我有一个很大的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#中连接一个常量字符串和枚举?
你可以使用'public readonly' ...你不能使用'const',因为在编译的时候必须知道一个const字符串。使用枚举值进行字符串连接需要对该枚举值进行字符串转换 - 这些操作在运行时发生,而不是在编译程序期间发生。 – elgonzo
@elgonzo好主意,但这不太符合我提到的一致性,我试图保持。如果没有其他办法,那么'只读'就是要走的路。 –
我扩展了我的第一条评论。在这种情况下,请参阅为什么不能使用'const' ... – elgonzo