반응형
1. 확장 메서드
- 기존 클래스의 기능을 확장하는 기법(상속과는 다름)
- 클래스 외부에서 클래스의 메서드처럼 사용할 수 있는 새로운 메서드를 만들 수 있는 기능
2. 확장 메서드 생성방법
1) static class
2) static method
3) 첫번째 매개변수 this 키워드
using System;
namespace StudyCSharp
{
class Program
{
static void Main(string[] args)
{
int a = 10;
int b = 20;
// int의 메서드처럼 IntToString 함수를 사용가능
string A = a.IntToString("aaaa");
string B = b.IntToString("bbbb");
Console.WriteLine(A);
Console.WriteLine(B);
}
}
}
// 1) static class
public static class IntExtension
{
// 2) static method,
// 확장 메서드 선언, 3)첫번째 매개변수에 this 키워드가 들어가야함
public static string IntToString(this int num, string extraStr)
{
return num.ToString() + " " + extraStr;
}
}
3. 확장 메서드를 사용하는 이유
1) C# 혹은 외부 dll에 이미 정의되어있는 클래스들에 새로운 기능이 있는 메서드를 추가해야 할 때
2) 메서드를 새롭게 만들려 하는 클래스가 이미 상속 등으로 인해 영향을 받는 클래스가 많을 때
(확장 메서드로 만든 함수는 자식 클래스에서 재정의 할 수 없음)
3) 영향을 주고 싶은 클래스가 많을 때