반응형
대리자(delegate)
- 대리자 선언: <접근제한자> delegate <리턴타입> <대리자이름>(파라미터)
- 대리자는 메서드의 파라미터로 전달 가능
class DelegateTest
{
// delegate 선언
public delegate int TestDelegate(int a, int b);
public DelegateTest()
{
// delegate 인스턴스 생성
TestDelegate sumD = new TestDelegate(OnSum);
TestDelegate subD = new TestDelegate(OnSub);
Calc(sumD, subD);
}
public int OnSum(int a, int b)
{
return a + b;
}
public int OnSub(int a, int b)
{
return a - b;
}
public void Calc(TestDelegate sum, TestDelegate sub)
{
Console.WriteLine($"sum: {sum(10, 5)}, sub: {sub(10, 5)}");
}
}
DelegateTest t = new DelegateTest();
대리자, 무명 메서드, 람다식
// delegate 인스턴스 생성
TestDelegate sumD = new TestDelegate(OnSum);
TestDelegate sumD = OnSum;
public int OnSum(int a, int b)
{
return a + b;
}
// 무명 메서드
TestDelegate sumD = new TestDelegate(delegate(int a, int b) { return a + b; });
TestDelegate sumD = delegate(int a, int b) { return a + b; };
// 람다식
TestDelegate sumD = (a, b) => { return a + b; };
TestDelegate sumD = (a, b) => a + b;
반응형
'C#' 카테고리의 다른 글
C# 확장 메서드 (0) | 2021.12.27 |
---|---|
C# 이벤트(Event) (0) | 2021.12.26 |
C# 제네릭(Generic) (0) | 2021.12.24 |
C# string을 int로 변환 TryParse (0) | 2021.12.24 |
C# String 함수(Contains, IsNullOrEmpty, IsNullOrWhiteSpace, StartsWith, Replace, Split, Substring) (0) | 2021.12.24 |