확장 메소드
오늘은 확장 메소드에 대하여 소개를 하려고 합니다.
사전적 의미는 확장메소드(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 |