C#에서 매개 변수로 함수 전달
이 자습서에서는 C#의 다른 함수 내에서 함수를 매개 변수로 전달하는 메서드를 소개합니다.
C#에서Func<>
대리자를 사용하여 함수를 매개 변수로 전달
Func<T1, T-return>
대리자는 C#에서T1
매개 변수와T-return
반환 유형을 사용하여 함수를 정의합니다. Func<T1, t-return>
델리게이트를 사용하여 다른 함수 내에서 함수를 매개 변수로 전달할 수 있습니다. 다음 코드 예제는 C#에서Func<>
델리게이트를 사용하여 다른 함수 내에서 함수를 매개 변수로 전달하는 방법을 보여줍니다.
using System;
namespace pass_function_as_parameter {
class Program {
static int functionToPass(int x) {
return x + 10;
}
static void function(Func<int, int> functionToPass) {
int i = functionToPass(22);
Console.WriteLine("i = {0}", i);
}
static void Main(string[] args) {
function(functionToPass);
}
}
}
출력:
i = 32
정수 값을 매개 변수로 취하고이를10
으로 증가시키고 결과를 정수 값으로 리턴하는 함수functionToPass(int x)
를 정의했습니다. Func<int, int>
델리게이트를 사용하여functionToPass()
함수를function()
함수에 매개 변수로 전달했습니다. function()
함수 내의functionToPass()
함수에22
값을 전달했습니다. 메인 함수에서function(functionToPass)
함수 호출로 함수를 호출했습니다. Func<>
델리게이트는 일부 값을 반환하는 함수를 전달하는 데만 사용할 수 있습니다.
C#에서Action<>
대리자를 사용하여 함수를 다른 함수 내에서 매개 변수로 전달
값을 반환하지 않는 함수를 전달하려면 C#에서Action<>
대리자를 사용해야합니다. Action<T>
델리게이트는 함수 델리게이트처럼 작동합니다. T
매개 변수로 함수를 정의하는 데 사용됩니다. Action<>
델리게이트를 사용하여 함수를 매개 변수로 다른 함수에 전달할 수 있습니다. 다음 코드 예제는 C#에서Action<>
델리게이트를 사용하여 다른 함수 내에서 함수를 매개 변수로 전달하는 방법을 보여줍니다.
using System;
namespace pass_function_as_parameter {
class Program {
static void functionToPass2(int x) {
int increment = x + 10;
Console.WriteLine("increment = {0}", increment);
}
static void function2(Action<int> functionToPass2) {
functionToPass2(22);
}
static void Main(string[] args) {
function2(functionToPass2);
}
}
}
출력:
increment = 32
정수 값을 매개 변수로 취하고이를10
으로 증가시키고 결과를 인쇄하는 함수functionToPass2(int x)
를 정의했습니다. Action<int>
델리게이트를 사용하여functionToPass2()
함수를function()
함수에 매개 변수로 전달했습니다. function2()
함수 내의functionToPass2()
함수에22
값을 전달했습니다. 메인 함수에서function2(functionToPass2)
함수 호출로 함수를 호출했습니다. Action<>
델리게이트는 값을 반환하지 않는 함수를 전달하는 데만 사용할 수 있습니다.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn