무명 메소드 Anonymous Methods

Gogi·2023년 9월 8일

C# 언어 기초 목록

목록 보기
20/29

이름이 없는 메소드

무명 메소드(Anonymous Methods)는 C#에서 메서드를 선언하고 사용할 때 이름을 붙이지 않는 방식을 의미한다. 무명 메소드는 델리게이트(delegate) 타입의 인스턴스에 할당되어 사용될 수 있다. 일반적으로는 람다 식(lambda expressions)을 사용하기 때문에 특정 상황에서만 활용된다.


개념 설명

무명 메소드는 델리게이트와 함께 사용되어 메서드를 간결하게 표현할 수 있다. 람다 식이 도입되기 전에는 이 방식이 많이 사용되었으며, 현재도 특정 상황에서는 유용하게 사용된다.

무명 메소드의 기본 문법은 delegate 키워드를 사용

delegate (parameters) 
{
    // 메서드 본문
}

사용 예시

Print 델리게이트 타입에 무명 메소드를 할당하고 있다.
이 후 print(100);으로 무명 메소드를 호출한다.

namespace Example
{
    public delegate void Print(int value);

    class Program
    {
        static void Main(string[] args)
        {
            Print print = delegate(int val) 
            {
                Console.WriteLine("내부 무명 메소드 값: " + val);
            };
            print(100);
        }
    }
}

무명 메소드와 람다와의 차이점

  • 문법: 무명 메소드는 delegate 키워드를 사용하며, 람다는 => 연산자를 사용.
  • 가독성: 람다 식은 일반적으로 더 간결하고 짧음.
  • 변수 캡쳐: 무명 메소드에서는 캡쳐 대상 변수가 readonly 상태여야 가능함.
profile
C, C++, C#, Unity

0개의 댓글