English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Action는 System 네임스페이스에서 정의된 대리자 유형입니다. Action 유형 대리자는 Func 대리자와 같지만, Action 대리자는 반환 값이 없습니다. 다시 말해, Action 대리자는 void 반환 유형의 메서드와 함께 사용할 수 있습니다.
Action<T>는 .NET Framework에 내장된 일반화된 대리자입니다. Action<T> 대리자를 사용하여 메서드를 매개변수로 전달할 수 있으며, 사용자 정의 대리자를 명시적으로 선언하지 않아도 됩니다. 포장된 메서드는 이 대리자 정의의 메서드 서명과 일치해야 합니다. 다시 말해, 포장된 메서드는 매개변수를 값 전달로 받아야 하며, 반환 값이 없어야 합니다.
예를 들어, 다음 대리자는 int 값을 출력합니다.
public delegate void Print(int val); static void ConsolePrint(int i) { Console.WriteLine(i); { static void Main(string[] args) { Print prnt = ConsolePrint; prnt(10); {
10
Action 대리자를 사용하여 위에 정의된 Print 대리자 대신 사용할 수 있습니다. 예를 들어:
static void ConsolePrint(int i) { Console.WriteLine(i); { static void Main(string[] args) { Action<int> printActionDel = ConsolePrint; printActionDel(10); {
new 키워드를 사용하거나 메서드를 직접 할당하여 Action 대리자를 초기화할 수 있습니다:
Action<int> printActionDel = ConsolePrint; //또는 Action<int> printActionDel = new Action<int>(ConsolePrint);
Action 대리자는 최대16다른 타입의 입력 매개변수를 가질 수 있습니다.
익명 메서드를 Action 대리자에 할당할 수도 있습니다. 예를 들어:
static void Main(string[] args) { Action<int> printActionDel = delegate(int i) { Console.WriteLine(i); }; printActionDel(10); {
10
Lambda 표현식도 Action 대리자와 함께 사용될 수 있습니다:
static void Main(string[] args) { Action<int> printActionDel = i => Console.WriteLine(i); printActionDel(10); {
따라서, Action 대리자 타입 반환 값을 사용하지 않는 어떤 메서드든 사용할 수 있습니다.
Action 대리자는 최소 0개, 최대16매개변수가 있고 반환 값이 없습니다.
Action은 매개변수가 없고 반환 값이 없는 대리자입니다.
Action<int, string>은 입력 매개변수 int, string를 가지고 반환 값이 없는 대리자입니다.
Action<int, string, bool>은 입력 매개변수 int, string, bool를 가지고 반환 값이 없는 대리자입니다.
Action<int, int, int, int>은 입력이 있음을 의미합니다.4int형 파라미터가 1개이고 반환 값이 없는 대리자입니다.
대리자를 쉽게 빠르게 정의할 수 있습니다.
코드를 간결하게 만듭니다.
전체 애플리케이션에서 호환되는 타입.
Action 대리자는 Func 대리자와 동일하지만, Action 대리자는 어떤 내용도 반환하지 않습니다. 반환 타입은 void여야 합니다.
Action 대리자는 0개에서16입력 파라미터가 1개입니다。
Action 대리자는 익명 메서드나 람다 표현식과 함께 사용할 수 있습니다。