Action Delegate

홈 > 공유팁! > 프로그램 관련
프로그램 관련

Action<T> Delegate

꽁스짱 0 949
.NET의 Action<T> delegate는 하나의 파라미터를 받아들이고, 리턴 값이 없는 함수에 사용되는 Delegate이다. Action delegate는 System 네임스페이스에서 제공되는데, 파라미터의 수에 따라 0개부터 16개의 파라미터까지 받아들이는 delegate가 있다. 즉, 파라미터가 없는 Action은 Action delegate, 파라미터가 1개인 Action<T> delegate, 2개인 Action<T1, T2> delegate - 이렇게 16개 파라미터가 있는 Action delegate가 존재한다. 많은 함수의 경우 대개 3~5개의 파라미터까지 있는 걸로 본다면, 상당히 많은 함수에 대한 표준 delegate를 미리 만들어 둔것으로 보면된다. 물론 중요한 특징은 리턴 값이 없어야 한다는 점이다.
 

예제

class AClass
{
   public void Run()
   {
      // Action<T>
      // 입력  : T 타입
      // 리턴갑 : 없음

      // 기존 메서드 지정
      System.Action<string> act = Output;
      act("Hello");

      // 무명 메서드 지정
      Action<string, string> act2 = delegate(string msg, string title)
      {
         MessageBox.Show(msg, title);
      };
      act2("No data found", "Error");

      // 람다식 사용
      Action<int> act3 = code => Console.WriteLine("Code: {0}", code);
      act3(1033);
   }

   void Output(string s)
   {
      Console.WriteLine(s);
   }
}

 
0 Comments
제목