■ IFormatProvider 인터페이스, ICustomFormatter 인터페이스를 사용해 성별 포매터를 구현하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
using System; /// <summary> /// 성별 포매터 /// </summary> public class SexFormatter : IFormatProvider, ICustomFormatter { //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public #region 생성자 - SexFormatter() /// <summary> /// 생성자 /// </summary> public SexFormatter() { } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Public // IFormatProvider #region 포맷 구하기 - GetFormat(type) /// <summary> /// 포맷 구하기 /// </summary> /// <param name="type">타입</param> /// <returns>타입</returns> public object GetFormat(Type type) { return this; } #endregion // ICustomFormatter #region 포맷하기 - Format(format, value, formatProvider) /// <summary> /// 포맷하기 /// </summary> /// <param name="format">포맷 문자열</param> /// <param name="value">값</param> /// <param name="formatProvider">포맷 제공자</param> /// <returns>포맷 값</returns> public string Format(string format, object value, IFormatProvider formatProvider) { string description = value as string; if(string.IsNullOrEmpty(description)) { return string.Empty; } switch(description) { case "F" : return "남자"; case "M" : return "여자"; } return string.Empty; } #endregion } |