我有一個很大的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