[C#] delegate 2가지 표현, delegate를 그대로 사용하는 것과 람다 표현식.

C#에서 delegate를 사용하는 두 가지 표현 방식이 있습니다. 기본적으로 동일한 기능을 수행하지만, 코드 가독성과 표현 방식에서 차이가 있어요. 최근에는 람다 표현식을 통해 더 간결하고 현대적인 방식으로 많이 사용해요.

  1. 기본 delegate 사용
    line = Regex.Replace(line, $@"(?:<{_tag}.*?>)(.*?)(?:<\/{_tag}>)", delegate (Match match)
    {
        return match.Groups[1].Value;
    });
    
    여기서는 delegate 키워드를 명시적으로 사용하여 익명 메서드를 정의합니다. 이는 C# 2.0에서 처음 도입된 방식입니다. 익명 메서드 방식이므로 delegate 키워드를 사용하여 특정 작업을 정의하는 것입니다.
  2. 람다 표현식 사용
    line = Regex.Replace(line, $@"(?:<{_tag}.*?>)(.*?)(?:<\/{_tag}>)", match =>
    {
        return match.Groups[1].Value;
    });
    
    이 표현은 C# 3.0에서 도입된 람다 표현식을 사용한 방식입니다. 더 짧고 간결하며, 많은 개발자들이 선호하는 스타일입니다. delegate 키워드를 생략하고 match =>와 같은 람다 표현식을 사용하여 익명 함수를 정의합니다.

차이점 요약

  • 가독성: 두 번째 람다 표현식이 더 간결해 코드를 읽기 쉽습니다.
  • 역사: delegate는 오래된 방식이고, 람다 표현식은 더 최근의 기능입니다. 기능적으로는 동일하지만, 람다 표현식은 최신 C# 코드에서 더 많이 사용되는 경향이 있어요.

람다 표현식을 사용하는 것이 더 짧고 명확하게 코드를 작성할 수 있으므로, 가능하면 두 번째 방식을 사용하는 것이 좋습니다. 물론 현재 소속된 회사의 개발 규칙을 따르는 것이 가장 좋아요.

이전최근
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗