C# 委托的最简单例子(人人都能看懂)
ForExample One:
//查找一组数的最大值或者最小值
delegate bool Function(int max,int num);
static Function ISMax = delegate(int max, int nums) { return nums > max; };
static Function ISMin = delegate(int min, int nums) { return nums < min; };
static int Max(List<int> nums, Function function)
{
int max = 0;
foreach (var num in nums)
{
if (function(max,num))
{
max = num;
}
}
return max;
}
var list = Max(new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, (max, nums) => nums > max);
Console.WriteLine("这组数的最大值是:{0}",list);
ForExample Two:
//委托的例子
//delegate bool Function(int num);
static Func<int, bool> ISALL = delegate(int num) { return num <= 10; }; //查找出来小于等于10的数字
static Func<int, bool> ISTEN = delegate(int nums) { return nums % 2 == 0; }; //查找能被2整除的数
//查找出来小于等于10的数字
static List<int> Traverse(List<int> nums, Func<int, bool> function)
{
var list = new List<int>();
foreach (var num in nums)
{
if (function(num)) //num >= 10;num%2=0
{
list.Add(num);
}
}
return list;
}
var list=Traverse(new List<int>() {-1,2,-3,-4,5,6,7,8,9,2,0,4,1,5,2,5,5,5},ISALL);
Console.WriteLine("小于等于10的数字:");
foreach (var lists in list)
{
Console.WriteLine(lists);
}
最后:如有不对的地方欢迎指正。加油,我们都是最棒的!