C# 함수에서 메서드를 매개 변수로 전달하는 방법

Minahil Noor 2024년2월16일
  1. Func Delegate를 사용하여 C#에서 매개 변수로 메서드 전달
  2. Action Delegate를 사용하여 C#에서 메서드를 매개 변수로 전달
C# 함수에서 메서드를 매개 변수로 전달하는 방법

이 문서에서는 C# 함수에서 메서드를 매개 변수로 전달하는 다양한 메서드를 소개합니다.

  • Func 델리게이트 사용
  • Action 델리게이트 사용

Func Delegate를 사용하여 C#에서 매개 변수로 메서드 전달

기본 제공 대리자 Func를 사용하여 메서드를 매개 변수. 델리게이트는 함수 포인터처럼 작동합니다. 이 대리자를 사용하는 올바른 구문은 다음과 같습니다.

public delegate returnType Func<in inputType, out returnType>(InputType arg);

내장 델리게이트 Func에는 N 개의 매개 변수가 있습니다. 매개 변수의 세부 사항은 다음과 같습니다.

매개 변수 기술
inputType 필수 이 대리자의 입력 값 유형입니다. N 개의 입력 값이있을 수 있습니다.
returnType 필수 반환 값의 유형입니다. 이 대리자의 마지막 값은 반환 형식으로 간주됩니다.

아래 프로그램은Func 델리게이트를 사용하여 메소드를 매개 변수로 전달하는 방법을 보여줍니다.

public class MethodasParameter {
  public int Method1(string input) {
    return 0;
  }

  public int Method2(string input) {
    return 1;
  }

  public bool RunMethod(Func<string, int> MethodName) {
    int i = MethodName("This is a string");
    return true;
  }

  public bool Test() {
    return RunMethod(Method1);
  }
}

Action Delegate를 사용하여 C#에서 메서드를 매개 변수로 전달

또한 기본 제공 대리자 Action를 사용하여 다음과 같이 메서드를 전달할 수 있습니다. 매개 변수. 이 대리자를 사용하는 올바른 구문은 다음과 같습니다.

public delegate void Action<in T>(T obj);

내장 델리게이트 Action은 입력으로 16 개의 매개 변수를 가질 수 있습니다. 매개 변수의 세부 사항은 다음과 같습니다.

매개 변수 기술
T 필수 이 대리자의 입력 값 유형입니다. 16 개의 입력 값이있을 수 있습니다.

아래 프로그램은 Action 델리게이트를 사용하여 메소드를 매개 변수로 전달하는 방법을 보여줍니다.

public class MethodasParameter {
  public int Method1(string input) {
    return 0;
  }

  public int Method2(string input) {
    return 1;
  }

  public bool RunTheMethod(Action myMethodName) {
    myMethodName();
    return true;
  }
  RunTheMethod(() => Method1("MyString1"));
}

관련 문장 - Csharp Method

관련 문장 - Csharp Parameter