1.要传递的函数没有返回值
(1)没有参数的时候
namespace AlienDemo
{
internal class AlienDemoClass
{
public static int Compute(Action printFunc)
{
printFunc();
return 2;
}
public static void printFunc()
{
Console.WriteLine("-----this is a print test func-------");
}
static void Main(string[] args)
{
Console.WriteLine(Compute(printFunc));
_ = Console.ReadKey();
}
}
}
-----this is a print test func-------
2
(2)有参数的时候
namespace AlienDemo
{
internal class AlienDemoClass
{
public static int Compute(int number , Action<int> baseFunc)
{
baseFunc(number);
return 2;
}
public static void baseFunc(int number)
{
Console.WriteLine("-----this Calculate test func-------{0}", number);
}
static void Main(string[] args)
{
Console.WriteLine(Compute(5, baseFunc));
_ = Console.ReadKey();
}
}
}
-----this Calculate test func-------5
2
2.要传递的函数有返回值的时候
(1)没有参数的时候
namespace AlienDemo
{
internal class AlienDemoClass
{
public static int Compute(Func<int> baseFunc)
{
return 2 + baseFunc();
}
public static int BaseFunc()
{
Console.WriteLine("-----this baseFunc-------");
return 5;
}
static void Main(string[] args)
{
Console.WriteLine(Compute(BaseFunc));
_ = Console.ReadKey();
}
}
}
-----this baseFunc-------
7
(2)有参数的时候
namespace AlienDemo
{
internal class AlienDemoClass
{
public static int Compute(int number , Func<int, int> baseFunc)
{
return 2 + baseFunc(number);
}
public static int BaseFunc(int number)
{
Console.WriteLine("-----this baseFunc-------{0}", number);
return number;
}
static void Main(string[] args)
{
Console.WriteLine(Compute(5, BaseFunc));
_ = Console.ReadKey();
}
}
}
-----this baseFunc-------5
7