728x90
오늘 학습한 내용
확장 메서드
C# 확장 메서드는 기존 클래스를 수정하지 않고도 새로운 메서드를 추가할 수 있는 기능으로 코드의 유연성과 재사용성을 크게 향상시킵니다. 확장 메서드를 사용하면 외부에서 해당 클래스의 기능을 확장할 수 있으므로 클래스의 원본 코드를 건드리지 않고도 새로운 기능을 손쉽게 구현할 수 있습니다.
예시 1) GameObject 확장 메서드
public static T GetOrAddComponent<T>(this GameObject gameObject) where T : MonoBehaviour
{
var component = gameObject.GetComponent<T>();
if (component == null) gameObject.AddComponent<T>();
return component;
}
사용 예시
GameObject obj = new GameObject("Player");
Rigidbody rb = obj.GetOrAddComponent<Rigidbody>();
예시 2) List 확장 메서드
public static T GetRandomItem<T>(this IList<T> list)
{
return list[Random.Range(0, list.Count)];
}
사용 예시
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
string randomName = names.GetRandomItem();
Console.WriteLine(randomName);
문제 및 해결 과정
문제
기존 클래스에 새로운 기능을 추가하려면 소스 코드를 직접 구현해야 하는 불편함이 있었습니다.
시도한 해결 방법
확장 메서드를 활용하여 해당 클래스를 수정하지 않고도 외부에서 필요한 기능을 추가하는 방식을 도입하였습니다.
결과
코드를 보다 모듈화하고 재사용할 수 있게 되어 유지보수성이 크게 향상됨을 확인하였습니다.
새롭게 알게 된 점
확장 메서드의 이점
확장 메서드를 사용하면 기존 클래스를 수정하지 않고 기능을 확장할 수 있어 코드의 유연성과 재사용성이 크게 증가한다는 점을 배웠습니다. 또한 확장 메서드를 통해 Unity 내장 함수를 직접 구현하는 것 같은 느낌을 받아 매우 만족스러웠습니다. 자주 사용하는 기능들을 확장 메서드로 구현해두면 다른 프로젝트로 옮겨서 그대로 재사용할 수 있는 큰 장점이 있습니다.
728x90
'내일배움캠프' 카테고리의 다른 글
내일배움캠프 Unity - TIL : 25.02.25 (0) | 2025.02.25 |
---|---|
내일배움캠프 Unity - TIL : 25.02.24 (0) | 2025.02.24 |
내일배움캠프 Unity - TIL : 25.02.20 (1) | 2025.02.20 |
내일배움캠프 Unity - TIL : 25.02.18 (2) | 2025.02.18 |
내일배움캠프 Unity - TIL : 25.02.17 (4) | 2025.02.17 |