Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
Tags
- 게임만들기
- C++
- python
- premake5
- 배열문제
- swipe
- 그림자 효과
- 화살피하기
- 파이썬
- 렌더몽키
- 공부
- 3차원배열
- 비주얼스튜디오
- c#
- 화살표 함수
- 다중상속
- uidesign
- c++class
- rendermonkey
- 표창던지기
- 유니티
- 이득우
- 가변배열
- 화살표 메서드
- Unity
- visualstudio2022
- IMGUI
- 언리얼
- 셰이더
- 이득우언리얼
Archives
- Today
- Total
신입 개발자 공부 과정
Delegate 대리자1 본문
Q1
//1.대지자 정의
private delegate void Del();//본문 없다
public App()
{
//3 대리자 변수 정의 메서드 연결(인스턴스)
Del handler = this.SayHello;
//Del handler = new Del(this.SayHello);와 동일
//4 대리자 호출(대리자가 참조하고 있는 메서드를 호출)
handler();
}
//2.대리자에 연결할 메서드 정의
//시그니쳐가 같아야 한다
private void SayHello()
{
Console.WriteLine("Hello World!");
}
---------
Q2
program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestDelegate
{
class Program
{
static void Main(string[] args)
{
new App();
}
}
}
marine
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestDelegate
{
class Marine
{
public delegate void DelDie(); //1 대리자 선언
//3대리자 변수 선언
public DelDie OnDie;
//생성자
public Marine()
{
}
public void Hit()
{
this.OnDie(); //5. 대리자 호출
}
}
}
app
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestDelegate
{
class App
{
//생성자
public App()
{
Console.WriteLine("App생성자");
Marine marine = new Marine();//마린 객체 생성
//4대리자에 메서드 연결
marine.OnDie = this.MarineDieEventHandler;
marine.Hit();
}
//2대리자 연결한 메서드 정의
public void MarineDieEventHandler()
{
Console.WriteLine("마린이 죽었습니다.");
}
}
}
-------------
Q3.
Say Hello 메서드를 델리게이트를 사용하여 호출한다
program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestDelegate
{
class Program
{
static void Main(string[] args)
{
new App();
}
}
}
app
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestDelegate
{
class App
{
//1 create delegate
private delegate void Del();
//constructor
public App()
{
Console.WriteLine("App 생성자");
Del del = this.SayHello;//3 create delegate variable
del();//4 announce delegate
}
//2 create the method
private void SayHello()
{
Console.WriteLine("아무것도 입력하지 않았습니다");
}
//private void SayHello(string message)
//{
// Console.WriteLine(message);
}
}
------
Q4.
program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestDelegate
{
class Program
{
static void Main(string[] args)
{
new App(3, 4);
}
}
}
app
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestDelegate
{
class App
{
//1 create delegate
private delegate int Del(int a, int b);
//constructor
public App(int a, int b)
{
Console.WriteLine("생성자");
//3 create delegate variable
Del val = Sum;
//4 announce delegate
Console.WriteLine(val(a, b));
}
//2 create the method
private int Sum(int a, int b)
{
return a + b;
}
}
}
Q5
'C# > 수업 내용' 카테고리의 다른 글
Dictionary (0) | 2022.01.06 |
---|---|
Delegate 대리자 2 + Lamda 람다 (0) | 2022.01.05 |
1월3일 인벤3 (0) | 2022.01.03 |
12/30 수업 스타크래프트 부대지정 (0) | 2021.12.30 |
12/29수업 item + inventory (0) | 2021.12.29 |