目录
0 参考文章
知乎:事件是以特殊方式声明的委托字段吗
书籍:《C# 7.0本质论》
1 委托(delegate)
为了方便理解,我们先从委托的用途讲起。
1.1 委托的用途
在C/C++中,“函数指针”将对方法的引用作为实参传给另一个方法,而委托在C#中承担着相似的功能。虽然这样说,但我们对委托用途的理解可能还是很抽象,这里用一个简单的例子帮助理解。
冒泡排序是最基础的排序算法,它的代码大致如下:
public static void BubbleSort(int[] items) {
if (items == null) return;
for(var i = items.Length - 1; i >= 0; i--)
{
for(var j = 0; j+1 <= i; j++)
{
if (items[j] > items[j + 1])
{
var temp = items[j];
items[j] = items[j + 1];
items[j + 1] = temp;
}
}
}
}
该方法对整数数组执行升序排序。
但为了能够选择升序和降序,我们开始拓展这段