簡體   English   中英

以下三個ToString有什么區別

[英]What's the difference between the following three ToString

string ToString();
string ToString(IFormatProvider provider);
string ToString(string format, IFormatProvider provider);

進行編輯:

public override string ToString()

提供最簡單的格式; 它不允許使用格式說明符,並且區域性是隱式的。 但是方便顯示基本的UI控件或在調試過程中。

2參數版本允許指定格式和區域性,並且IFormattable接口通常由諸如string.Format和允許開發人員指定要使用的格式(特別是在數據綁定期間)的UI控件檢查。

1參數版本沒有特殊意義; 請參考文檔,但是在您提供的示例中,它似乎僅允許指定區域性。 在大多數情況下,我實際上希望

public string ToString(string format)

更有可能,默認情況下使用當前區域性(或同時提供兩者)。

(注意:問題已更改...)

您可以始終重寫ToString(除非基類將其密封),因此通常可以執行某些操作 -但如果要格式說明符支持(即,基於文本的模式,例如“ ###,000”),則可以使用IFormattable -但是您需要自己提供實現。 請注意,在某些情況下,TypeConverter也可能會有所幫助。

暫無
暫無

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

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