Posted in: C# 언어

C# 확장 메소드

확장 메소드(Extension Method)는 기존 클래스의 기능을 확장하는 기법입니다. 사용 예를 보면 기능 확장이라는 게 무슨 말인지 이해할 수 있을 겁니다.

확장 메소드 선언


namespace 네임스페이스이름
{
    public static class 클래스이름
    {
        public static 반환형식 메소드이름 (this 대상형식 식별자, 매개변수목록)
        {
            // 원하는 코드
        }
    }
}

메소드는 클래스없이 선언될 수 없습니다. 선언하는 클래스는 static 한정자로 수식해야 합니다. 메소드 또한 static 한정자로 수식해야 합니다.

그리고 이 메소드의 첫 번째 매개 변수는 반드시 this 키워드와 함께 확장하고자 하는 형식의 인스턴스여야 합니다. 그 뒤에 입력되는 매개 변수가 확장 메소드를 호출할 때 입력되는 매개 변수입니다.

사용 예제


namespace MyExtension
{
    public static class IntegerExtention
    {
        public static int Power (this int myInt, int exponent)
        {
            int result = myInt;
            for (int i = 1; i < exponent; i++)
                result = result * myInt;

            return result;
        }
    }
}

위 코드는 확장 메소드의 선언 예입니다.

아래 코드는 확장 메소드의 사용 예입니다.

using MyExtension;

int a = 2;
Console.WriteLine(a.Power(3));

Console.WriteLine(10.Power(4));

확장 메소드를 담는 클래스의 네임스페이스를 using 키워드로 사용할 수 있습니다. Power() 메소드가 int 형식의 메소드인 것처럼 사용할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다