12.1.委托概述
12.1.2 委托的数据类型
为了减少重复代码数量,可以将比较方法作为参数传递给 BubbleSort()方法。此外,为了将方法作为参数传递,,必须有一个能够标识方法的数据类型——也就是委托。这里的委托类型是 ComparisonHandler 。
c# 2.0之前的写法
class DelegateSample
{
static void Main(string[] args)
{
//int[] arr = { 10, 20, 30, 40, 50 };
int[] arr = { 50, 40, 30, 20, 10 };
ConsoleArr(arr);
ComparisonHandler wx = new ComparisonHandler(DelegateSample.IsTrue);
BubbleSort(arr, wx);
//C#2.0之前是这么写的
//BubbleSort(arr, new ComparisonHandler(IsTrue));
ConsoleArr(arr);
Console.Read();
}
public delegate bool ComparisonHandler(int a, int b);
public static bool IsTrue(int a, int b)
{
return a > b;
}
public static void BubbleSort(int[] items, ComparisonHandler comparisonMethod)
{
int i;
int j;
int temp;
if (items == null)
{
return;
}
if (comparisonMethod == null)
{
throw new ArgumentNullException("comparisonMethod");
}