C#/C# 학습 (TIL)32 C# 중급문법 Day8 Coroutine (코루틴) Coroutine? Co + routine : 협력하는 루틴 StartCoroutine과 StopCoroutine에 관한 3가지 방식 (StopCoroutine이 작동을 안하는 이유) 이와 같은 코루틴이 있을 때 이를 start시키고 stop시키는 3가지 방식의 차이에 대해 살펴본다. 처럼 그냥 코루틴 자체 함수를 매개변수로 넣어주게 되면 StopCoroutine을 했을 때 해당 코루틴을 찾지 못해 StopCoroutine이 작동하지 않는다. 이 경우 과 같이 미리 timeCo에 인스턴스를 빼서 넣어줘서 StopCoroutine이 확실하게 어떤 코루틴을 stop시켜야하는지 알 수 있게 해주면 해결된다. 또는 처럼 string methodName을 통해 처리하면 런타임에 리플렉션으로 코루틴을 찾아 처리해주.. 2022. 6. 23. C# 중급문법 Day7 Reflection / DeepCopy 일반화(reflection 적용) Reflection 타입에 대한 정보를 담는 메타적인 문법 using System.Reflection; using System; reflection 적용을 위해서 필요하다. 타입에 클래스 정보를 담기 Type type = tempA.GetType(); type에 담기는 것은 tempA의 클래스 정보(데이터타입)이지 tempA가 아니다. 클래스 내의 정보(변수)를 싹 다 불러오기 MethodInfo[] methods = type.GetMethods(); //type (클래스) 내부의 정보 (멤버 변수, 멤버함수)를 다 불러옴 int count = 0; foreach (var method in methods) { Debug.Log("번째 메서드의 이름 " +method.Name); count++; //Tem.. 2022. 6. 22. C# 디자인패턴 : 템플릿메서드 / 옵저버패턴 템플릿 메서드 전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화 할 때 사용 즉, 전체적인 알고리즘은 상위 클래스에서 구현하면서 다른 부분은 하위 클래스에서 구현하는 것이다. 드래곤의 전체적인 어택 알고리즘은 다 비슷하지만, 하위클래스별로 세부적으로 차이가 나는 부분만 하위클래스인 블루드래곤과 레드드래곤에서 재정의 해주는 예시이다, 옵저버 패턴 어떤 객체의 상태가 변할 때 그와 연관된 객체들에게 알림을 보내는 디자인 패턴 큰 구성도를 보자면, 이전에 올린 글인 이벤트 핸들러에서 다뤘던 그림인데 특정 이벤트가 발생했을때 이벤트핸들러가 작동하고, 그럼 그 이벤트핸들러를 구독하고 있는 이벤트리스너들이 동작하는 패턴이다. 2022. 6. 21. C# 중급문법 Day6 EventHandler Eventhandler? '어떠한 사건에 대한 동작을 다룬다'는 의미 특정 사건에 대해 이벤트 핸들러가 동작하면, 이 이벤트 핸들러를 구독하고있는 이벤트 리스너들이 동작하는 것이다. 또 좀 더 직관적으로 이해해보자면 object sender를 매개변수로 갖는 delegate라고 이해했다. public event EventHandler testEventHandler; public event Action testAction; public delegate void TestDel(object sender, EventArgs e); 위의 , , 은 다 같은 내용으로 형태만 다른 것인데, 이벤트핸들러의 내용을 설명하자면 처럼 object와 EventArgs를 매개변수로 갖는 Action이다. Action은 리턴타입.. 2022. 6. 21. 이전 1 2 3 4 5 6 7 8 다음