728x90
반응형

method 3

C#에서의 Func, Action [Unity]

메서드와 Action이 같을까? 한 번쯤 Action을 써봤을 수도 있다. 그렇다면 Action을 쓰면 메서드가 실행되는 것을 안다. 하지만 메서드와 실행방식이 다르다. 등록의 과정이 필요하다. 또한 Func이나 Action은 일반 메서드가 아닌 무명메서드도 등록이 된다. ???흠.. 무명메서드가 되는 이유가 무엇일까?? 사실 무명 메서드를 사용하기 위헤서는 델리게이트 변수가 있어야하고 델리게이트 타입의 변수를 선언해야한다. 그렇다면 각기 다른 타입의 무명 메서드를 여러개 만들 때는 어떻게 해야할까? 당연히 무명 메소드마다 그 타입에 맞는 델리게이트 타입과 변수를 따로 따로 선언해야 할 것이다. 하지만 비효율적인 작업이기 때문에 C#에서는 Func과 Action이라는 델리게이트를 제공한다. Func와 A..

델리게이트, Delegates [Unity]

델리게이트?? 뭔가 했다. 아직도 뭔가 하는 것 같다. 알아보자 우선 정의해보자 Delagate는 도대체 뭐하는 앤가? delegate 해석하면 "대신 ~해준다" 정도로 해석된다. 뭘 대신해준다는 것일까? Container for similar functions (or methods)다. 다시말해서 메서드를 참조해준다. 우리는 변수를 선언해서 값을 담을 수 있지만 메서드를 담을 수 있는 변수는 없다. delegate는 메서드를 담아준다. delegate void firstdelegate(); firstdelegate = hello(); public void hello() { print("Hello!"); } hello라는 메서드를 firstdelegate가 참조한다. 어떻게 사용하느냐? 1. delega..

Method Overloading, 메서드 오버로딩 [Unity]

오버로드하면 맨날 스타크래프트가 생각난다. Overload라서.. 조금 다르지만 그래서 이걸 알아보려고 한다. 왜냐?? 맨날 Unity에서 메서드를 사용하면 자꾸 옆에 + overloaded +3 막 이런게 뜬다. 그래서 알아보기로 하였다. 원래 메서드는 유일하게 존재한다. 동일한 것이 존재하면 중복되어 오류가 생긴다. 그러나 Method Overloading이 그것을 피하게 해준다. 피하게 해준다는 뜻이. 중복되는 내용을 써도 된다! 가 아니라 이름만 같을뿐 다른 기능을 한다는 의미로 받아들여야 한다. 예시를 보자 using UnityEngine; using System.Collections; public class SomeClass { //당연히 더하는 메서드다. 정수를 // 인자로는 정수 2개를 받..

728x90
반응형