를 사용하여.
문자열을 전달하는 대신 대리자를 사용할 수 있습니다. 그런 식으로, 당신은 어떤 반성이 필요하지 않습니다.
C#에 미리 정의 된 대리자 형식 인 Func<>
이 있습니다.이 형식을 사용하면 대리자로 전달할 메서드의 반환 형식과 매개 변수 형식을 쉽게 정의 할 수 있습니다. Math.Sin()
더블을 반환하고 이중 매개 변수를 사용하기 때문에
예를 들어, Math.Sin(double)
에 대한 Func<>
는 Func<double, double>
될 것이다. 이런 식으로 사용 그런
public int DoCalculation(Func<double, double> func, double a)
{
return Convert.ToInt32(func(a));
}
:
using System;
namespace Demo
{
internal class Program
{
private void run()
{
Func<double, double> f1 = Math.Sin;
Func<double, double> f2 = Math.Cos;
double r1 = runFunc(f1, 1.0);
double r2 = runFunc(f2, 2.0);
Console.WriteLine(r1);
Console.WriteLine(r2);
}
private static double runFunc(Func<double, double> func, double parameter)
{
return func(parameter);
}
private static void Main()
{
new Program().run();
}
}
}
문자열을 전달하고 해당 문자열을 코드에서 실행하겠습니까? –
그래서'Actions'와'Func's를 사용하고 싶지 않으십니까? –
어쩌면 이것을 사용하려는 의도의 예를 제시해야 할 것입니다. 어쩌면 더 좋은 방법이 있거나 적어도 우리가 당신의 필요를 조금 더 이해할 수 있도록 도와 줄 것입니다. – musefan