평소와 같이 Microsoft의 인터페이스를 사용하는 것이 가장 좋기 때문에 사용자 지정 포맷터를 구현하고자하므로 ICustomFormatter를 찾습니다.ICustomFormatter의 IFormatProvider
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 –