码迷,mamicode.com
首页 > Windows程序 > 详细

C# 委托---基础

时间:2015-03-10 10:19:39      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

委托是一个类
可以把一个方法当作另一个方法的参数使用。


声明委托:delegate string 委托名(参数列表);
使用委托的函数 返回值和参数列表与委托相同
使用委托: 委托名 委托变量名=new 委托(函数名); 委托变量名(参数列表);


例子:
delegate string de1(string name,int age);//定义
static string CN(string name, int age)
{
return name + " 的年龄是 " + age;
}
static string EN(string name, int age)
{
return name + " is " + age + " years old";
}
de1 de = new de1(CN);//使用或 de1 de = CN;
de("",1);
=========
多播委托
包含多个方法的委托;按顺序调用,返回值必须void(否则返回最后调用方法的值);其中一个发生异常,不再继续向下执行;
de1 de = new de1(CN);//使用
de += EN;//连续调用第二个
de("",1);
发生异常也向下执行 使用GetInvocationList()方法
de1 de = new de1(CN);//使用
de += EN;//连续调用第二个
Delegate[] des = de.GetInvocationList();
foreach (de1 item in des)//循环
{
try
{
str += item("liu", 1);
}
catch (Exception)
{
str += "有错误";
}
}
==========
匿名方法的委托
delegate string de1(string name, int age);
de1 de = delegate(string name, int age)
{
return name + " 的年龄是 " + age;
};
str= de("liu",1);

==========
泛型Action<T>委托表示引用一个void返回类型的方法
例子:
Action<int> Get;
Get = qq;
Get(12);
public static void qq(int i)
{
}
泛型Func<in T,out TResult>允许调用带返回类型的方法
Func<int, string> Get;
Get = qq;
Get(12);
public static string qq(int i)
{
return "你输入的数字是:" + i;
}

C# 委托---基础

标签:

原文地址:http://www.cnblogs.com/liuph/p/4325041.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!