[C#] 8. 확장 메서드

Connected Brain·2025년 4월 24일

면접 질문 대비

목록 보기
8/60

확장 메서드에 대해 설명하고 어떻게 활용했는지 알려주세요.

한 줄 요약

확장 메서드 : 'static' 클래스의 'static' 메서드 이어야하며, 특정 매개변수의 타입에 대해 자주 발생하는 간단한 변형, 타입 변환 등에 사용. 생성자 없이 사용할 수 있으므로 여러 클래스에서 자주 발생하는 경우에 적용하기에 유리

확장 메서드

public static class ExtensionMethods
{
    public static [반환 타입] [메서드 이름](this [매개 변수])
    {
        ...
    }
}
  • 기본적으로 위와 같은 구조를 가진다. static 클래스의 static 함수로 매개변수에 this 키워드를 사용하면
[매개 변수타입] testInstance
testInstance.[메서드 이름]();
  • 위의 구조로, 앞에 있는 변수가 메서드의 매개 변수로 들어가게 된다.
  • 기본적으로 Static 클래스의 Static 함수이므로 해당 클래스에 생성자 없이 어디서든 함수를 사용할 수 있다.
  • 이러한 점을 이용해 특정 값을 다른 형태의 값으로 변환할 때 사용하였다.
    Ex) 숫자를 입력해 시간(00:00) 형태로 변경

사용예시

public static class ExtensionMethods
{
    public static Vector3 ToVector3(this string str)
    {
        if (str[0] == '(' && str.Last() == ')')
        {
            var pos = str.Substring(1, str.Length - 2).Split(',');
            return new Vector3(float.Parse(pos[0]), float.Parse(pos[1]), float.Parse(pos[2]));
        }
        return Vector3.zero;
    }
    
    public static Vector2 ToVector2(this string str)
    {
        if (str[0] == '(' && str.Last() == ')')
        {
            var pos = str.Substring(1, str.Length - 2).Split(',');
            return new Vector2(float.Parse(pos[0]), float.Parse(pos[1]));
        }
        return Vector2.zero;
    }
}    
  • 현재 프로젝트에서 가장 많이 활용하는 확장 메서드는 구글 SpreadSheet에서 가져온 문자열을 여러 타입으로 변환하는 함수를 자주 활용하고 있다.

0개의 댓글