概念:1.委托类似于C++函数指针,但是他是类型安全的.2.委托允许将方法作为参数进行传递例:
namespace ConsoleApplication1
{
delegate int mydelegate(int x,int y); //委托声明
class MyDelegate
{
public int add(int x, int y)
{
return x + y;
}
public int sub(int x, int y)
{
return x - y;
}
}
class program1
{
public static void Main(string[] args)
{
MyDelegate p = new MyDelegate();
mydelegate pAdd = new mydelegate(p.add);//委托实例化
mydelegate pSub = new mydelegate(p.sub);
Console.WriteLine("9+1={0}", pAdd(9, 1));//委托调用
Console.WriteLine("9-1={0}", pSub(9, 1));
Console.ReadLine();
}
}
}
封装多个方法:
MyDelegate p = new MyDelegate();
mydelegate a,b;
b=p.add;
a=b; //将add方法添加到调用列表中
b=p.sub;
a+=b; //将sub方法添加到调用列表中
p(9,1);
匿名方法:
delegate void mydelegate1(int x,int y);
class Class1
{
public static void Main(string[] args)
{
mydelegate1 p = delegate(int x,int y)
{
Console.WriteLine("result={0}", x+y);
Console.ReadLine();
}; //注意
p(9,1);
}
}
原文链接: https://www.cnblogs.com/msony/archive/2013/01/15/2861553.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/75656
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!