1-1. 확장메서드
- 타인이 만든 클래스에 직접 접근하여 기능을 추가하면 자신의 코드가 아니기때문에 에러가 발생할 수 있으므로 협업 관계에 혼란이 있을 수 있음.
- 기존에 있는 클래스를 건들지 않고, 기능을 추가할 수 있도록 하는 기능.
1-2. 사용 방법
internal class Program
{
public static void Main()
{
string text = "hello world";
Console.WriteLine(text.WordCount());
// Extension.WordCount(text)와 동일
int a = 3;
a.PrintNum("삼!");
}
}
public static class Extension
{
public static int WordCount(this string text)
{
return text.Split(' ').Length;
}
public static void PrintNum(this int num, string text)
{
Console.WriteLine($"{text}");
}
}
- 확장메서드 구현할 때, 꼭 static 클래스로 외부에서 선언한다.
- 원하는 자료형의 기능을 추가할때 첫번째 매개변수에 this를 써준다.