C# 익명 메서드 사용법: delegate 문법과 람다식의 차이
C# 익명 메서드를 delegate 키워드로 작성하는 방법과 람다식으로 바꾸는 기준을 설명합니다. 오래된 예제의 의미는 살리되 현재 기준에서 잘못 적용하기 쉬운 부분을 함께 고쳤어요. 아래 순서대로 확인하면 단순한 화면 복사보다 실제 판단에 도움이 됩니다. 익명 메서드는 이름 없이 델리게이트 인스턴스에 실행 코드를 전달합니다. 익명 메서드는 이름 없는 실행 블록이다 익명 메서드는 별도의 메서드 이름을 만들지 않고 델리게이트가 실행할 코드를 바로 작성하는 문법입니다. 짧은 콜백을 한 번 전달할 때 코드가 가까이 모인다는 장점이 있어요. Action<string> print = delegate(string message) { Console.WriteLine(message); }; print("처리가 끝났습니다."); 매개변수와 반환 형식은 대입되는 델리게이트 형식과 맞아야 합니다. 이름이 없다는 점만 다를 뿐, 실행될 때는 일반 메서드처럼 인수를 받고 결과를 반환합니다. 람다식이 더 짧지만 의미는 비슷하다 위 코드는 message => Console.WriteLine(message) 로 줄일 수 있습니다. 현대 C#에서는 람다식이 더 흔하지만, 오래된 코드에서 delegate 문법을 만나면 같은 종류의 익명 함수로 이해하면 돼요. 여러 문장이 필요하면 중괄호 블록을 사용하고, 한 식으로 충분하면 식 람다가 읽기 쉽습니다. 짧게 쓸 수 있다는 이유로 복잡한 업무 규칙을 람다 하나에 몰아넣지는 마세요. 이름이 설명에 도움이 되거나 여러 곳에서 재사용한다면 일반 메서드로 분리하는 편이 낫습니다. 외부 변수와 이벤트 해제를 조심한다 익명 함수는 바깥 지역 변수를 캡처할 수 있습니다. 반복문의 변수를 캡처하면 실행 시점의 값이 예상과 다를 수 있으므로 각 반복에서 별도 지역 변수로 복사하는 방식이 안전해요. 이벤트에 익명 함수를 직접 등록하면 나중에 같은 인스턴스를 찾기 어려워 해제가 곤란할 수도 있습니다. 선택 ...