簡體   English   中英

.ToString() 和 .ToString(CultureInfo.CurrentCulture)

[英].ToString() and .ToString(CultureInfo.CurrentCulture)

例如,我必須在每個數字中使用.ToString(CultureInfo.CurrentCulture)到字符串轉換。 我可以以某種方式覆蓋.ToString()以便我不會在字符串轉換中顯式地獲得更多類似文化的消息嗎?

例如,現在我必須改變每一個

myNumValue.Count.ToString();

myNumValue.Count.ToString(CultureInfo.CurrentCulture);

ToString(CultureInfo.CurrentCulture)替換ToString()沒有任何意義,因為這正是ToString()已經做到的。

如果您沒有將定義的文化(可能通過用戶選擇)放入您的代碼中,只需堅持使用第一種方法。

這條規則的重點是為每個格式化和解析操作做出明確的文化選擇。 如果您嘗試系統地交換實現以“欺騙”規則,您最終只會將潛在問題掃地出門。 正如 Lonli-Lokli 所建議的,如果您不喜歡閱讀帶有文化參數的ToString調用,您可能需要考慮使用擴展方法,但您應該為支持的每種文化使用不同的擴展方法。 例如: ToUIString() -> ToString(CultureInfo.CurrentCulture)ToInvariantString() -> ToString(CultureInfo.InvariantCulture)

如果您指的是來自代碼分析的消息,那么您可以禁用特定規則。

您可以創建擴展方法 ToStringEx 並調用具有指定區域性的常用方法。

您可以編寫一個 ToStringInvariant 和一個 ToStringCurrent 擴展方法,為每種類型轉換一個覆蓋:int、double、decimal 等。復制和粘貼只需幾分鍾。 DateTime 最終可以以相同的方式處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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