[英]Constants in .NET with String.Format
我有兩個常數:
public const string DateFormatNormal = "MMM dd";
public const string TimeFormatNormal = "yyyy H:mm";
在我決定在這兩個方面有另一個基礎之后:
public const string DateTimeFormatNormal = String.Format("{0} {1}", DateFormatNormal, TimeFormatNormal);
但我得到編譯錯誤The expression being assigned to 'Constants.DateTimeFormatNormal' must be constant
我嘗試后做那樣的事情:
public const string DateTimeFormatNormal = DateFormatNormal + " " + TimeFormatNormal;
它正在使用+ " " +
但我仍然喜歡使用類似於String.Format("{0} {1}", ....)
任何想法,我怎么能使它工作?
不幸的是。 使用const關鍵字時,該值必須是編譯時常量。 String.Format的結果不是編譯時常量,所以它永遠不會工作。
您可以從const
更改為readonly
並在構造函數中設置值。 不完全相同的東西......但效果類似。
我經常發現自己處於這種情況,最后我把它轉換成看起來像這樣的東西:
public static readonly string DateTimeFormatNormal = String.Format("{0} {1}", DateFormatNormal, TimeFormatNormal);
(希望是對的,我是一個VB.NET開發者,同樣的想法)
Public Shared ReadOnly DateTimeFormatNormal As String = String.Format("{0} {1}", DateFormatNormal, TimeFormatNormal)
Public Shared ReadOnly
非常接近Public Const
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.