做.NET开发很久,最近重新温习《C#高级编程》一书。发现很多曾经似懂非懂的问题,其实也是能够慢慢钻研慢慢理解的。
所以,打算开写《C#高级编程系列》博文。其中会借鉴《C#高级编程》一书的概念,也会参照其他高手的博文,希望大家谅解。有不对的地方,欢迎指正。
(另:本博文不会讲解定义,语法方面的基础知识。)
下面如题,我们来讲委托。
Delegate委托,在.NET中应用的非常广泛。会涉及到Lambda表达式,事件,匿名方法等(请关注后续博文)。
那么何为委托?
通俗的来讲,委托除了必须指定delegate关键字和没有方法实体之外,和指定方法没有更多区别。你可以当它是一个占位符,比如你在写代码的时候并不知道你将要处理的是什么。你只需要知道你将要引入的参数类型和输出类型是什么并定义它即可。这就是书本上所传达的方法签名必须相同的意思。
下面我们来定义一个基本的委托:
public class Test
{
//定义委托
public delegate void D_Math(int a, int b);
public void Add(int a, int b)
{
Console.WriteLine("Add方法结果:{0}", a + b);
}
public void Cut(int a, int b)
{
Console.WriteLine("Cut方法结果:{0}", a - b);
}
}
[TestClass]