보통 C# 람다에서 많이 사용하는 것으로써... 잘 잊어 먹기에 이래 적어 논다.ㅠ _ ㅠ
Func<?>
- 제네릭을 적용한 위임자(델리게이트)
- 미리 제공되는(선언되어있는) 델리게이트
- 익명메서드, 람다식, 함수참조를 담을 수 있다
형식 :
Func<out TResult>
Func<in T1, out TResult>
Func<in T1,in T2, out TResult>
Func<in T1,in T2,...in T16, out TResult>
//요구사항] 정수값을 받아서 제곱값을 구하시오 //방법1. 델리게이트 생성 -> 메서드호출 //이름없는 메서드를 호출하기 위해서 델리게이트라는 //위임자를 통해서 접근했었다 // => 델리게이트를 선언해야되는 불편함이 있음 Mydelete md1 = n => n * n; Console.WriteLine(md1(10)); //방법2. Func<> 사용 -> 델리게이트 선언x //Func 델리게이트<제네릭> //Func<매개변수1 자료형, 매개변수n 자료형.., 반환값 자료형> Funcfunc1 = n => n * n; Console.WriteLine(func1(5)); //사용
Action<?>
- Func과 동일하지만 반환값이 없다
형식 :
Action
Action <in T1>
Action <in T1,in T2>
Action <in T1,in T2,...in T16>
//Action사용 //델리게이트 선언x //인자값만 받을 수 있음 반환값 없음 Actionaction = name => Console.WriteLine(name); //전달할 매개변수가 없다면 <>는 빠진다 //람다식에서도 매개변수가 없다면 아래와 같이 빈괄호 처리를 해줘야한다 Action action2 = () => { Console.WriteLine("매개변수 없음!!"); }; action("하하하"); action2();
'Microsoft > C# & ASP.NET' 카테고리의 다른 글
C# Regular Expression (정규식 기호) (0) | 2012.10.23 |
---|---|
리플렉션을 이용한 동적 코드 생성 (0) | 2012.09.25 |
asp.net Callback (0) | 2012.09.21 |
SQL 서버를 이용한 ASP.NET 세션관리[펌] (0) | 2012.09.19 |
[Microsoft Enterprise Library 5.0 (0) | 2012.09.18 |