-
확장 메서드를 처음 알게 된 계기
프로젝트 진행 중에 숫자를 문자열로 변환 하는 작업을 할 때 float.을 사용해서 바로 변환 하게 하는 것을 목격 했다.
원래 내가 하던 방식은 함수를 하나 작성을 해서 Manager.instance.FloatToString() 이런 식으로 사용을 했었다.
이런 방식이 아닌 확장 메서드를 통해서 바로 사용을 할 수 있게 한다면 매우 편리할 것 같았다.
확장 메서드란
만들어져 있는 클래스에 기능을 추가하는 기능이라고 볼 수 있다. 그런데 클래스에 기능을 추가 하는 것보다는 추가 하는 것처럼 보이게 하는 게 맞는 것 같다.
만드려면 static Class에 static Method를 만들어 주면 된다.
public static class 클래스이름
{
public static 반환형식 함수이름(this float value)
{
retrurn value.ToString();
}
}
위 코드에서 this 키워드를 사용하여 확장 메서드로 만들 수 있다. this 키워드는 확장하려는 데이터 타입을 나타내며, 메서드를 호출할 때 매개변수로 해당 타입의 값을 전달받는 것을 생략할 수 있게 해준다.
사용을 할 때는
float speed = 5.5f;
Txt.text = speed.확장메서드이름();
이런 식으로 사용을 하면 된다. 무슨 차이인가 싶을 수 있겠지만 다른 자료형으로 변환 하는 과정에서 숫자 옆에 다른 문자열을 붙인 다거나 등등 복잡함을 추가 할 수가 있고, intstance를 통해 접근 해야 할 때 코드를 줄일 수 있다.
하지만 확장 메서드를 사용 할 때는 static을 사용하므로, 전역 상태로 관리된다는 점에 주의를 해야 한다. 그러니 확장 메서드를 만들기 전에 고민을 하고 만들자.
'공부 기록' 카테고리의 다른 글
24년 8월 8일 TIL (0) 2024.08.09 24년 8월 5일 TIL (0) 2024.08.05 24년 8월 2일 TIL (0) 2024.08.02 24년 8월 1일 TIL (0) 2024.08.01 24년 7월 31일 TIL (0) 2024.07.31