[C#] 확장 메서드

Flaming Bun·2025년 7월 4일

C#

목록 보기
24/35

참고 영상 : C# 확장 메서드

🔥 확장 메서드

기존 클래스의 기능을 확장하기 위해서 보통 상속을 이용한다.

일부 특별한 상황일 때 상속이 좋은 조건이 아닐 수도 있다.

그때 대신 사용할 수 있는 것이 확장 메서드다.

사용하는 경우

1. 상속으로 기능 확장하기 어려운 경우

ex) String 클래스 처럼 *sealed class

📌 sealed

sealed 키워드를 사용한 클래스는 봉인되어 상속하지 못하게 된다.


2. 상속으로 기능을 확장했을 때 전체적으로 코드 수정이 필요한 경우.


사용 방법

	public static class 클래스 이름
    {
    	// this 대상타입 식별자 -- 확장할 클래스 또는 타입
    	public static 반환타입 메서드 이름(this 대상타입 식별자, 매개변수)
        {
        	// 내용
        }
    }

⚔ 예시


public class Player
{
	public void Move()
    {
    	// move
    }
}

public static class PlayerA
{
	public static void Jump(this Player player)
    {
    	// jump
    }
}

public class Test:MonoBehaviour
{
	private void Start()
    {
    	// 기존 Player
    	Player player=  new Player();
       	player.Move();
		player.Jump();
    }
}

⚔ 예시(Transform 확장)

public static class TransformExtension
{
	// Transform의 위치, 회전, 스케일을 초기화하는 확장 메서드
    public static void ResetTransform(this Transform transform)
    {
    	transform.position = Vector3.zero;
        transform.rotation = Quaternion.identity;
        transform.localScale = Vector3.one;
    }
}

public class ExtensionTest : MonoBehaviour
{
	void Start()
    {
    	Transform myTransform = gameObject.transform;
        
        myTransform.ResetTransform();
    }
}

0개의 댓글