확장 메소드
오늘은 확장 메소드에 대하여 소개를 하려고 합니다. 사전적 의미는 확장메소드
(Extension Method )는 기존 클래스를 확장하는 방법입니다. 여기에서 필드나, 메소드를 추가하는 상속이랑은 다른 경우 입니다.
확장 메소드는 "기존 클래스를 확장"을 한다. 가 되겠습니다.
특징
1. 반드시 static으로 선언을 하여야 한다.
2. 첫번째 매개변수는 반드시 this로 시작해야 된다.
3. 확장하고자 하는 클래스의 형식이어야 합니다.
[문법]
namespace 네임스페이스이름
{
public static class 클래스 이름
{
public static 반환형식 메소드 이름 ( this 대상형식 식별자, 매개 변수 )
{
}
}
}
[예제1]
using MyExtension;
namespace thisClass
{
class Program
{
static void Main(string[] args)
{
//Console.WriteLine(3.Square());
string strValue = "Kingkong";
Console.WriteLine(strValue.Append(", GoodMan !!!"));
}
}
}
namespace MyExtension
{
public static class IntergerExtension
{
public static string Append(this string myInt, string _AddString)
{
return myInt + _AddString;
}
}
}
위 소스를 설명을 하면 strValue변수에 GoodMan 문자를 추가를 하는것입니다.
어렵지는 않으나 다소 까다로운 문법입니다.
using TestExtension;
namespace thisClass
{
class Program
{
static void Main(string[] args)
{
int TotalValue = 10;
Console.WriteLine(TotalValue.CalsPlus(10));
}
}
}
namespace TestExtension
{
public static class FuncTest
{
public static int CalsPlus(this int _OriginValue, int _addvalue)
{
return _OriginValue + _addvalue;
}
}
}
위 프로그램에 결과는 어떻게 될까요?
결과는 : 20입니다.
위와 같은 방식이 확장 메소드 입니다. 여전히 까다로운 문법으로 생각이 되실겁니다.
두가지만 생각하면 됩니다.
1. 별도 Namespace로 구성을 해야한다.
2. static으로 선언이 되어야 된다.
'PROGRAMING > C#' 카테고리의 다른 글
일반화 메소드 (0) | 2018.01.17 |
---|---|
Ref, Out에 의한 참조(Reference) (0) | 2018.01.08 |
값 타입 (0) | 2018.01.03 |
삭제 패턴 (0) | 2018.01.03 |
인터페이스 (Interface) (0) | 2017.12.27 |