-
[C#] 대리자와 delegate, Action, Func프로그래밍/C# + Unity 2024. 2. 23. 12:50728x90
대리자
대리자는 특정 매개 변수 목록 및 반환 형식이 있는 메서드에 대한 참조를 나타내는 형식이다. 쉽게 설명하면, 대리자를 통해 함수를 매개 변수로 전달할 수 있다. 이는 콜백 함수와 같은 이벤트에서 사용한다는 점에서 C++의 함수 포인터와 유사하지만, 멤버 함수에 대해 완전히 개체 지향이라는 점에서 다르다.
매개변수로는 상황에 따라 Action이나 Func를 사용한다. 매개 변수가 없으며 값을 반환하지 않는 경우에는 Action을 사용하고, 이외의 경우에는 모두 Func<TResult>를 사용한다.
1. Action과 delegate를 사용하는 경우
예를 들어 아래와 같은 경우를 볼 수 있다.
using System; using System.Windows.Forms; public class Name { private string instanceName; public Name(string name) { this.instanceName = name; } public void DisplayToWindow() { MessageBox.Show(this.instanceName); } } public class testTestDelegate { public static void Main( { Name testName = new Name("Koani"); Action showMethod = testName.DisplayToWindow; showMethod(); Action showMethod2 = delegate() { testName.DisplayToWindow();} ; showMethod2(); } }
2. Func과 delegate를 사용하는 경우
예를 들어 아래와 같은 경우를 볼 수 있다.
using System; using System.Windows.Forms; public class Name { private string instanceName; public Name(string name) { this.instanceName = name; } public string DisplayToWindow() { return this.instanceName; } } public class testTestDelegate { public static void Main( { Name testName = new Name("Koani"); Func<string> showMethod = testName.DisplayToWindow; Console.WriteLine(showMethod()); Func<string> showMethod2 = delegate() { return "Syudal"; }; Console.WriteLine(showMethod2()); } }
728x90댓글