자세한 설명과 함께 답변을 개선했습니다. 이제 확장 방법에 대해 더 쉽게 이해할 수 있습니다.
확장 방법 : 서브 클래스를 사용하지 않고 기존 클래스 나 구조체를 수정 또는 재 컴파일하지 않고도 기존 클래스의 동작을 확장 할 수있는 메커니즘입니다.
커스텀 클래스, .net 프레임 워크 클래스 등을 확장 할 수 있습니다.
확장 메서드는 실제로 정적 클래스에 정의 된 특수한 종류의 정적 메서드입니다.
마찬가지로 DateTime
클래스는 이미 위의 촬영 때문에 우리는 설명이 클래스를 촬영하지 않았습니다.
아래는 예입니다
// 메서드가 하나만있는 기존 Calculator 클래스 (Add)
public class Calculator
{
public double Add(double num1, double num2)
{
return num1 + num2;
}
}
// Below is the extension class which have one extension method.
public static class Extension
{
// It is extension method and it's first parameter is a calculator class.It's behavior is going to extend.
public static double Division(this Calculator cal, double num1,double num2){
return num1 / num2;
}
}
// We have tested the extension method below.
class Program
{
static void Main(string[] args)
{
Calculator cal = new Calculator();
double add=cal.Add(10, 10);
// It is a extension method in Calculator class.
double add=cal.Division(100, 10)
}
}