본문 바로가기
Study/C#

[C#][Study] 확장 메서드(Extension Method)

by 스테디코디스트 2023. 10. 4.
반응형

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) 영향을 주고 싶은 클래스가 많을 때