[C# 문법] C# 익명메서드 선언방법
- C#/C# 문법
- 2020. 2. 5. 00:00
안녕하세요.
오늘은 C#에서 제공해주는 문법인 익명메서드에 대해서 알아보려고 합니다.
익명메서드? 이름이 좀 생소하시죠?ㅎㅎ
익명메서드는 C# 2.0에서 도입된 기능으로써, 람다식과 비슷하지만 다음과 같은 기능을 지원하지는 않습니다.
- 매개변수 형식 생략
- 표현식 구문(익명 메서드는 반드시 문장 블록이어야 합니다.)
- Expression<T>에 배정해서 표현식 트리로 컴파일
그럼 이제 익명 메서드를 어떻게 선언하는지 알아보도록 하겠습니다.
익명 메서드를 작성할 때에는 다음과 같이 delegate 키워드 다음에 매개변수 선언과 메서드 본문을 써줍니다. 예를 들어서 다음과 같은 대리자가 있습니다!
1 |
delegate int Transformer(int i); |
다음과 같이 익명 메서드를 대리자에 배정해서 호출합니다.
1 2 |
Transformer sqr = delegate (int x) { return x * x; }; Console.WriteLine(sqr(3)); |
이제 그럼 위의 내용을 토대로 실제 예제 코드를 작성해 보도록 하겠습니다.
예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace test12 { class Program { //델리게이트 Add 선언 delegate int Add(int x, int y);
static void Main(string[] args) { //Add 익명 메서드 선언 Add add = delegate (int x, int y) { return x + y; }; Console.WriteLine("익명메서드 호출 된 값 : {0}", add(3, 4));
//람다를 이용한 익명메서드 Add add2 = (x, y) => x + y;
Console.WriteLine("람다를 이용한 익명 메서드 호출된 값 : {0}", add2(4, 5)); } } }
|
실행 결과
위에 예제코드를 보시게 되면, 이제는 사실 람다를 이용하여 메서드를 쉽게 만들 수 있기 때문에 delegate 키워드를 이용하여 익명메서드를 사용하는 것 보다 람다를 이용하는 것을 추천 드리겠습니다.^^
감사합니다.
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] C# DateTime 날짜와 시간 다루기 (0) | 2020.02.08 |
---|---|
[C# 문법] C# 문자열 내부 검색하는 방법 (0) | 2020.02.06 |
[C# 문법] C# 인덱서(Indexer) 사용 방법 (2) | 2020.01.31 |
[C# 문법] C# 컬렉션 Hashtable (해시 테이블) 사용 예제 (0) | 2020.01.31 |
[C# 문법] StringBuilder 클래스 이용하여 문자열 연결하기 (0) | 2020.01.13 |
이 글을 공유하기