Extension Methods
기능
- 기존 클래스의 인스턴스 메서드처럼 사용
- 기존 클래스의 내용을 변경하지 않고 기능 확장
구성
- static class 안에 static method 형태로 구성 된다.
- 메서드의 첫번째 파라메터는 확장하려는 클래스로 고정된다.
- 첫번째 파라메터 클래스명 앞에 this 를 붙여준다
using System;
namespace ExtensionMethods
{
class Program
{
static void Main(string[] args)
{
var p = new Person { Name = "John", Age = 33 };
var p2 = new Person { Name = "Sally", Age = 35 };
p.SayHello(p2);
Console.ReadKey();
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public static class Extensions
{
public static void SayHello(this Person person, Person person2)
{
Console.WriteLine($"{person.Name} says hello to {person2.Name}");
}
}
}
https://www.youtube.com/watch?v=D3OCSkXLFuk