我看委托(二)
1.为什么要用到委托,委托有什么意义?
委托就是在一段几乎相似的代码中,抽取那不同的代码,把它封装到一个方法里,通过调用不同的方法,从而达到改变整段代码的目的。更为简单的说就是尽可能的达到代码模块化的目的。
class Program
{
static void Main(string[] args)
{
List<int> list1 = new List<int>();
list1.Add(10);
list1.Add(20);
list1.Add(30);
list1.Add(-15);
int j = list2(list1, shengxu);
Console.WriteLine(j);
Console.ReadKey();
}
static int list2(List<int> list1, adelegate adelegate1)
{
int max = list1[0];
List<int> list2 = new List<int>();
foreach (int i in list1)
{
if (adelegate1(max, i))
//if (shengxu(max, i)) 原先可以直接调用方法的名称。
//i>j 是这段代码中不相同的地方,把它抽取到另外一个方法中,通过委托进行调用。
{
max = i;
}
}
return max;
}
static bool shengxu(int i, int j)
{
return i > j;
}
}
delegate bool adelegate(int i, int j);