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
{
// 此处的Func中的参数int是返回值的类型
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
{
// 此处的Func中的第一个参数int是参数,第二个参数int是返回值类型
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)
{
// 此处将函数BaseFunc传递给Computer的时候,需要传递函数本体,和BaseFunc需要的参数
Console.WriteLine(Compute(5, BaseFunc));
_ = Console.ReadKey();
}
}
}
-----this baseFunc-------5
7
本文含有隐藏内容,请 开通VIP 后查看