我們正在尋找實施自定義格式化程序,按照慣例,最好使用來自Microsoft的接口,所以我找到了ICustomFormatter。IFormatProvider在ICustomFormatter
http://msdn.microsoft.com/en-us/library/system.icustomformatter.format(v=vs.110).aspx
但是該接口的簽名來提供這種:
public string Format(string format, object arg, IFormatProvider formatProvider)
{
}
我甚至會使用formatProvider呢?我還沒有看到好爲什麼你關心什麼formatProvider加載了這個ICustomFormatter的例子。
我發現的唯一的例子是這樣的:
http://www.codeproject.com/Articles/6533/Custom-String-Formatting-in-NET
if (formatProvider is NumberFormatInfo)
if (((NumberFormatInfo)formatProvider).UseDiacritic)
c = diacritic;
但這只是看起來像可怕的設計(需要一個接口,然後強耦合的話)。
我錯過了一些特殊用例嗎?
IFormatProvider是不是用於允許不同區域或文化中的相同類型的數據的不同格式?因此,例如,貨幣格式輸出「$」表示en-us,「£」表示en-gb。 – acfrancis
這就是你需要知道的全部http://msdn.microsoft.com/en-us/library/system.iformatprovider.getformat%28v=vs.110%29.aspx –