C#

80.C# - 확장메서드

Godffs 2009. 8. 19. 19:51
반응형

확장 메서드 : 기존 클래스의 외부에서 메서드 추가 static 메서드로
새 파생형식을 만들거나 다시 컴파일 또는, 원래 형식을 수정안해도 기존 형식의
메서드를 "추가" 할 수 있습니다.


덧셈하기 위한 클래스에 뺄셈기능을 추가하고자 할때 확장 메서드 사용하는 예제

Program.cs
using System;
public class Calc
{
    public int plus(int a, int b) { return (a + b); }
}

public static class CalcExtension //확장메서드 사용한 클래스 선언
{
    public static int Minus(this Calc c, int a, int b)  { return (a - b); }
}

public class 확장메서드
{
    public static void Main()
    {
        Calc c = new Calc();
        Console.WriteLine(c.plus(3, 5));
        Console.WriteLine(c.Minus(3, 5));

        string s = "확장메서드";
        Console.WriteLine("{0}",s.ShowTitle()); //***확장메서드***
       
        int i = -10;
        Console.WriteLine("절대값 : {0}",i.Abs()); //확장       
    }
}

//CLR에 이미 만들어져 있는 string 클래스 확장
public static class StringExtension
{
    public static string ShowTitle(this string s) {
        return "***" + s + "***";
    }

    public static int Abs(this int i)  {
        return i < 0 ? -i : i;
    }
}

결과화면


80.확장메서드.zip
다운로드

반응형