728x90
대리자(delegate)
- 대리자는 인스턴스가 아닌 형식!!
- 인스턴스화 필수
- 대리자는 메서드를 다른 메서드의 인수로 전달 가능
(대리자 인스턴스가 필요, 인스턴스에 메서드 연결하여 사용)
1. 형식 생성
2. 인스턴스 생성
3. 메서드 연결
4. 사용
-사용자 지정형식
enum / class/ struct/ delegate
람다
- 익명 함수를 만들기 위해 사용
- 람다 선언 연산자: =>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace Starcraft
{
public class App
{
//2. 대리자 형식 정의
delegate void MyDelegate(string name);
//생성자
public App()
{
//3. 대리자 인스턴스화
MyDelegate MyDel = new MyDelegate(this.SayHello);
//4. 대리자 호출
MyDel("홍길동");
}
//1. 메서드 정의
void SayHello(string name)
{
Console.WriteLine("{0}님 안녕하세요~", name);
}
void ByeBye(string name)
{
Console.WriteLine("{0}님 안녕히 가세요~", name);
}
}
}
무명메서드
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using starcraft;
namespace Starcraft
{
public class App
{
//1. 대리자 형식 정의
delegate void MyDel();
//생성자
public App()
{
//2. 대리자 인스턴스화 (무명메서드연결)
MyDel del = delegate () {
Console.WriteLine("안녕하세요.");
};
//3. 대리자 호출
del();
}
}
}
무명메서드2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using starcraft;
namespace Starcraft
{
public class App
{
//1. 대리자 형식 정의
delegate int MyDel(int a, int b);
public App()
{
//2. 대리자 인스턴스화 (익명메서드)
MyDel del = delegate (int a, int b) {
return a + b;
};
//3. 대리자 사용
int sum = del(1, 2);
Console.WriteLine(sum);
}
}
}
'KDT > C# 프로그래밍' 카테고리의 다른 글
23/07/27 데이터매니저 데이터로드 (0) | 2023.07.27 |
---|---|
23/07/27 람다 (0) | 2023.07.27 |
23/07/27 전시간 수업 내용 정리 (0) | 2023.07.27 |
23/07/26 과제 및 가짜 인벤토리 복습(집에서) (0) | 2023.07.26 |
23/07/26 가짜 인벤토리 만들기2 (0) | 2023.07.26 |