확장 메서드는 기존에 있는 클래스를 건드리지 않고 기능을 추가할 수 있도록 하는 기능입니다.
프로젝트 하면서 타인이 만든 클래스에 직접 접근하여 기능을 추가하면, 자신의 코드가 아니기 때문에 코드 작성 후 에러가 발생할 수도 있고, 협업 관계에 혼란을 줄 수도 있기 때문에 확장 메서드를 사용하여, 기존의 코드를 건드리지 않고 기능을 추가하는 것이 바람직합니다.
this를 사용하여 확장하고자 하는 자료형에 작성하여 사용합니다
string에는 단어의 수를 세는 함수가 없기 때문에 확장 메서드를 만들어 구현한 코드입니다.
internal class Program
{
static void Main(string[] args)
{
string text = "Hello World Hello Everyone";
int Count = Extension.WordCount(text);
Console.WriteLine(Count);
}
}
public static class Extension
{
public static int WordCount(this string text)
{
string[] words = text.Split(' ');
return words.Length;
}
}
4
이와 같이 클래스의 원래 형식을 수정하지 않고도 기존 형식에 함수를 추가할 수 있고
상속을 통하여 만들지 않고도 추가적인 함수를 구현 가능합니다.