4주차 강의는 전에 언리얼을 개발하면서 사용했던 기술들과 면접준비 하면서 배웠던 내용과 고급 기능들이 많이 있었다
그래서 아주 중요하다고 생각하여 여러번 보고 이해를 더 정확히 하기 위해 따로 검색을 하며 복습을 진행하였다
인터페이스는 구체적인 객체에 의존해서 구현하지 않고 추상화된 객체를 이용해 구현할 수 있게 해준다
예를 들면 ICharacter 인터페이스가 있고 void start(Icharacter character) 함수가 있을때
ICharacter 인터페이스를 상속받은 클래스의 객체는 어떤 객체든 매개변수로 넣고 사용할 수 있다
이것을 느슨한 결합이라고 한다
델리게이트는 값이 아닌 코드 자체를 넘기고 싶을 때 사용하는것으로
접근할 수 없는 메소드를 델리게이트를 이용해서 해결할 수 있다 라고 이해했다
그리고 델리게이트에는 이벤트라는 키워드가 있는데 그냥 델리게이트와 비교해서 언제 사용되는지에 대해 보면
그냥 델리게이트는 콜백 용도로 사용한다
기본 베이스 : 어떤 함수를 등록 해놓고 사용하면 등록한 함수가 실행된다
추가로 다른 함수도 등록을 해놓으면 처음 순서대로 등록한 함수가 실행된다
OnAttack = Attack // 함수 저장
public void Attack(float damage)
{
Console.WriteLine("enemy가 공격을 했습니다.");
Console.WriteLine("호출 준비");
Console.WriteLine("호출 끝");
}
//AddFunc 실행됨
OnAttack += AddFunc;
델리게이트를 사용한 후 함수가 끝나면 추가로 더 등록된 함수가 있다면 순서대로 호출이 된다
델리게이트 이벤트는 객체의 상태 변화, 사건의 발생을 알리는 용도로
기본 베이스 : 함수를 등록하고 다른 함수 안에서 호출하고 싶은 곳에 invoke를 해주면
다른 함수가 실행되는 동안 등록한 함수가 실행되고 완료 후에 마저 함수를 진행한다
public void Attack(float damage)
{
Console.WriteLine("enemy가 공격을 했습니다.");
Console.WriteLine("호출 준비");
OnAttack?.Invoke(damage); // AddFunc 실행됨
Console.WriteLine("호출 끝");
}
OnAttack += AddFunc;
이런식으로 Attack함수 안에서 호출이 되어 등록한 함수가 실행되고 완료되면 Attack 함수가 마저 실행된다
우여곡절 끝에 과제 제출 완료...!
https://hwon-note.tistory.com/38
[C# 문법 종합반] 4주차 과제 - TextRPG
코드 더보기 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection.Emit; using System.Reflection.Metadata; using System.Runtime; using System.Runtime.CompilerServices; using System.Runtime.
hwon-note.tistory.com
'TIL' 카테고리의 다른 글
[WIL] 내일배움캠프_23.08.21~23.08.27 3주차 (1) | 2023.08.27 |
---|---|
[TIL] 내일배움캠프_Unity 4주차 복습(람다 , LINQ), is,as 연산자, 5주차 강의 - 정렬 (0) | 2023.08.25 |
[TIL] 내일 배움 캠프 _Unity 개인과제 제출 및 후기, 4주차 강의 (0) | 2023.08.23 |
[TIL] 내일배움캠프_Unity 개인과제 버그 (0) | 2023.08.22 |
[TIL] 내일배움캠프_Unity 개인과제, 문자열 포맷, 정렬, 입력 경고 메세지 (0) | 2023.08.21 |