inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

Delegate (대리자)

OnClicked clicked = new OnClicked(TestDelegate) 에관해서 질문..

238

djaghdyd123

작성한 질문수 12

0

c언어를 조금 배운 상태에서 강의를 듣고있습니다.

참조 형식라고 하여서 clicked 변수에 함수 주소를 받는 포인터로 대입을 해서 생각하고 있는데 

new 생성자로 인스턴스를 만들면 새로 메모리를 할당해서 그 주소를 받는다고 이해해왔습니다.

그렇다면 OnClicked clicked 는 TestDelegate의 주소 (함수 원형)을 받는것이 아니라 새로 인스턴스로 생성된 TestDelegate의 복사본의 주소를 받게되는 것인가요?

제대로 질문을 했는지 모르겟군요.. 

답변해주시면 감사하겠습니다.

C#

답변 1

2

Rookiss

delegate, 혹은 다른 언어로 구현하는 콜백 기능들은
C로 치면 함수 포인터(혹은 함수 객체)와 유사합니다.
따라서 OnClicked 내부적으로 TestDelegate 함수의 주소를 들고 있는 것이고,
new OnClicked을 했을 때는 TestDelegate를 복사하는 것이 아니라
단지 그 함수 주소를 들고 있을 뿐입니다.

class OnClicked
{
   OnClicked(TestDelegate func)
  {
     _func = func;
  }
    TestDelegate _func;
}

굳이 비유하자면 위와 같은 느낌입니다.
물론 delegate에는 훨씬 더 많은 기능이 있으니 저렇게 단순하진 않겠죠.

Generic에 대한 질문 있습니다.

0

96

2

2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?

0

202

2

다형성 캐시 문제

0

113

3

.

0

71

1

프로퍼티 강의 질문 있습니다.

0

79

1

이후 커리 질문

0

86

1

static

0

91

2

강의에는 새로운 클래스 파일을 생성하면...

0

72

1

생성자의 이름 선언

0

65

1

9:03 Divide(10 , 3) 부분 질문입니다

0

88

1

깃허브 관련 질문 있습니다.

0

239

1

비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문

0

249

1

C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!

0

306

2

Activator 질문있습니다

0

332

1

이넘 타임 선언 질문

0

346

1

Sort 오름차순, 내림차순

0

323

1

질문 있습니다.

0

249

1

팩토리얼 문제

0

270

1

Sort함수 질문있습니다.

0

265

1

다형성 함수 질문 있습니다.

0

221

1

질문이 있습니다.

0

228

1

섹션2 연습문제 질문입니다.

0

214

1

안녕하세요~서버에 대해 질문이 있습니다.

1

283

1

텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ

0

395

1