Delegate and Func
- .NET Framework에는 총 17 가지의 Func 델리게이트가 준비 되어있다.
- 매개 변수가 없는 메소드부터 매개 변수가 16개인 메소드까지 총 17개의 메소드를 참조 가능.
- 무명 메소드 뿐만 아니라 일반 메소드도 참조 가능.
- Func 델리게이트로 메소드를 참조하면 전처럼 델리게이트 타입을 선언하는 과정이 불필요 해지므로 아주 간결하게 코드를 작성할 수 있다.
/**
* @file ExamFuncDelegate01.cs
* @brief 델리게이트와 Func.
* @details 델리게이트와 Func 사용 예제.
* @version 0.0.1
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudyCSharp_Bong9
{
namespace ExamFuncDelegate01
{
/**
* @brief 델리게이트와 Func 예제 클래스.
* @details Func와 Action은 미리 선언된 델리게이트 변수로써 별도의 선언없이 사용이 가능. Func는 반환값이 있는 메소드를 참조하는 델리게이트 변수, Action은 반환값이 없는 메소드를 참조하는 델리게이트 변수.
* @author 김봉재.
* @date 2014-08-07
*/
class ExamFuncDelegate
{
static float temp (int a, int b, int c)
{
return (a + b + c) * 0.1f;
}
static void Main(string[] args)
{
Func float func0 = () => 0.1f;
Func int, float func1 = (a) => a * 0.1f;
Func int, int, float> func2 = (a, b) => (a+b) * 0.1f;
Func<span id="mce_SELREST_start" style="overflow:hidden;line-height:0;"></span><int, int, int, float func3;
func3 = new Func int, int, int, float(temp);
Console.WriteLine("func0 반환값: {0}", func0());
Console.WriteLine("func1 반환값: {0}", func1(10));
Console.WriteLine("func2 반환값: {0}", func2(10,10));
Console.WriteLine("func3 반환값: {0}", func3(10,10,10));
}
}
}
}
게시자: bong9
UnrealEngine4, Unity3d, vr, gameprogrammer
bong9의 모든 글 보기