簡體   English   中英

.NET中的常量與String.Format

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM