퇴근5분전

demo링크
http://msdn.microsoft.com/en-us/library/ms131016(v=VS.96).aspx

위 링크를 보면 숫자 관련 링크가 나온다.

훈스 닷넷에서 문자열로 된 데이타를 소숫점 이하 3자리 표현을 하고 싶다는 질문에

다시 숫자형으로 바꾸어 지정하면 된다. 라고 답을 했는데 그 이외에 방법을 궁금해 하는 분 같았다.

물론, 이렇게 위 처럼 하는 것이 가장 간단한 방법인디... 음...

특정 포멧 공급자들은 NumberFormatInfo  ,   DateTimeFormatInfo  두가지를 msdn에서 보았고,

또 필요하면 직접 구현하면 된다...




사용자 정의 포멧을 만들때 필요한 건...?

첫번째 방법 .
 내가 주로 사용하는 방법은 IFormattable를 사용하는 방법이다. 

이방법은 간단히 ToString을 오버로딩하는 방법으로 IFormattable의 메서드를 상속 구현을 통해 만든다. 

interface IFormattable{ string ToString(string format, IFormatProvider formatProvider); }

이다. 

어떤 데이타를 문자열 포멧을 지정해야 한다거나 포멧이 여러타입으로 구분되어야 할때 이방법을 사용한다.

그러면 객체.ToString(); 또는 ToString( 포멧, null )을 통해서 멋지게 구현이 된다. 

또한 string.Format( "{0:포멧}" , 객체 ); 로 하면 지정된 포멧을 이용해 문자열 변환이 된다.

두번째 방법 .

 ICustomFormatter 를 MSDN을 검색하여 이용한다. 외울수는 없기에.. ^^; 
그러나 이 인터페이스는 혼자 쓰이기 보다 IFormatProvider  와 함께 구현이 된다.

데모(MSDN)는 http://msdn.microsoft.com/ko-kr/library/system.iformatprovider(v=VS.80).aspx 

간단히 위 두가지 방법을 이용해 객체에 대한 문자열 정보를 원하는 포멧으로 변환이 가능하다.

지금 하고 있는 프로젝트에서는 주로 XML 변환을 하고 있다. 

이전에 작성한 포멧관련 글이 있긴할텐데... 역시 관리상에 문제이려나... 

카테고리가 너무 많은 듯... 한데... 정리정돈이 .. 


추가 : 

http://stackoverflow.com/questions/128618/c-file-size-format-provider

파일 사이즈 포멧터를 만들어놓은게 있네.. 



 

'# 1) 프로그래밍' 카테고리의 다른 글

컨트롤 배율 조정 공식...  (0) 2011.06.09
큐 자원 재활용!!  (0) 2011.06.07
C#] 날짜 2011-04-19 오후 2:45:00 를 DateTime으로 바꾸기  (0) 2011.04.28
[C#] 배열 최대 크기  (0) 2011.04.26
ActiveDirectory] Query  (0) 2011.04.19