'확장메소드'에 해당되는 글 1건

  1. 2011.01.09 | [C#]확장메소드의 사용방법

[C#]확장메소드의 사용방법

.NET | 2011. 1. 9. 01:14
Posted by Haronoid
C# 3.0부터 추가된 기능으로 확장메소드라는 기능이 있다. 일시적으로 대상클래스에 추가메소드를 정의해 사용하는 방법인데, 잘 쓰면 하나의 기능추가를 위해 기존 기능을 상속받아 구현할 필요까지는 없게해주는 편리한 도구라고 할 수 있다.
파라메터에 this를 넘겨주면 자동적으로 대상 클래스의 뒤에 확장 메소드를 사용할 수 있다.

아래는 GcDate라는 클래스로부터 얻는 문자열을 가공해서 에러의 위험을 피하기위한 샘플 코드이다.
//클래스명은 아무거나 상관없지만 되도록이면 알기쉬운 클래스명이면 좋을 것이다.
public static class GcDateUtil
{
    //추가할 확장메소드(GcDate형 변수에서 사용할 수 있다.)
    public static string GetText(this GcDate dtmDate)
    {
        string rtnText = dtmDate.Text;

        rtnText = rtnText.Replace("/", "").Replace("_", "");

        if (rtnText.Length == 0)
        {
            return dtmDate.Text;
        }
        else
        {
            return dtmDate.Value.GetValueOrDefault().ToString("yyyy/MM/dd");
        }
    }
}

사용예
GcDate dtmA = new GcDate();
 GcDate dtmB = new GcDate();

 dtmA.Value = DateTime.now();
 dtmA.Text = "";

 string strA = dtmA.GetText();
 string strB = dtmB.GetText();

結果
 strA <- "2011/01/07"
 strB <- "____/__/__"

 +GcDate클래스는 GraphCity사의 클래스로 날자 디폴트는 "____/__/__"를 텍스트로 보존하고 있다.
 
블로그 이미지

Haronoid

기본적으로 프로그래밍 관련 메모를 중점으로 합니다. 자세한 설명이 결여되어 있을 가능성이 있습니다.

카테고리

분류 전체보기 (29)
프로그래밍 기본 (1)
VB&VBA (1)
JAVA (0)
ORACLE (10)
WidnowsCommandLine (2)
Excel (1)
Windows (1)
.NET (6)
MS SQL (6)