센로그
[C#] Extension Method (확장 메서드) 본문
◆ Extension Method (확장 메서드)
이미 존재하는 타입을 재정의하거나 상속하지 않고도 새로운 기능을 추가(확장)할 수 있도록 하는 방법
.NET에서 제공하는 Extension Method(확장 메서드) 기능은 특수한 종류의 static 메서드로,
마치 다른 클래스의 메서드인 것처럼 사용할 수 있는 메서드이다.
이미 존재하는 타입을 재정의하거나 상속하지 않고도 새로운 기능을 추가할 때 사용한다.
(말그대로 확장할 수 있다는 뜻임!!)
※ 기존 메서드와 같은 이름 및 파라미터의 메서드로 확장할 경우, 기존 메서드로 연결됨
◆ Extension Method 사용법
< Extension Method 사용법 >
- static 클래스 안에 static 메서드를 선언
- 메서드의 첫번째 파라미터에 확장할 타입을 선언하되, this 키워드와 함께 선언
(예시: GameObject 타입을 확장할 경우, this GameObject)
예시) 유니티 GameObject클래스에 name과 tag를 동시에 갖고오는 GetNameWithTag() 메서드를 확장하고 싶다고 하자.
다음과 같이 확장하고 싶은 메서드를 static class 안에 static method로 정의한다.
메서드의 첫 파라미터는 확장하고자하는 타입을 넣고, this 키워드를 붙인다.
public static class MyExtension
{
public static string GetNameWithTag(this GameObject obj)
{
return obj.name + obj.tag;
}
}
그러면 이런식으로 GameObject 타입의 객체를 통해 확장된 메서드를 사용할 수 있다.
'게임 > Unity, C#' 카테고리의 다른 글
[C#] StringBuilder (0) | 2023.07.11 |
---|---|
[C#] static - Class, Constructor, Field, Method (0) | 2023.07.10 |
[Unity] Awake(), Start(), OnEnable() 차이 (0) | 2023.07.07 |
[C#] Boxing(박싱), UnBoxing(언박싱) (0) | 2023.07.04 |
[C#] LINQ (Language Integrated Query) (2) | 2023.07.03 |
Comments