■ IFormatProvider 인터페이스, ICustomFormatter 인터페이스 : 성별 포매터 구현하기

----------------------------------------------------------------------------------------------------

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

}

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요