- 独立IP主机如何实现屏蔽域名恶意解析问题
- 分销商城数据库设计详解
- hreflang首页和内页设置
- 网站主机防止独立IP被恶意解析的解决方法
- MySQL报错:ERROR 1118 (42000): Row size too large. 或者 Row size too large (> 8126).
- dtcms安装环境
- 小程序支付中签名错误
- windows下4种mysql 修改 root 密码的方法
- 获取用户IP地址的三个属性的区别 (HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
- c#中this的用法
邮箱:
手机:15383239821
C#基础:委托之Action和Func的用法
我们在使用委托的过程中,除了为每个参数和返回类型定义一个委托之外,也就是说为每一个方法(作为参数的方法)定义一个委托,我们还可以使用Action<T>和Func<T>委托。
泛型Action<T>委托表示引用一个void返回类型的方法。Action<T>委托类存在不同的变体,可以传递至多16种不同的参数类型,没有泛型参数的Action类可以调用没有参数的方法。例如:Action<in T1>调用带一个参数的方法,Action<in T1,in T2>调用带两个参数的方法等
Func<T>的用法和Action<T>用法类似,但是Func<T>表示引用一个带返回类型的方法,Func<T>也存在不同的变体,至多可以传递16个参数类型和1个返回类型,例如:Func<in T1,out Resout>表示带一个参数的方法,Func<in T1,in T2,out Resout>表示调用带两个参数的方法。
下面就直接给一个Action<T>和Func<T>的例子
using System;
namespace DelegateFuncAction
{
class Program
{
static void Main(string[] args)
{
Func<double, double,double> DoAddtion = calculate.addtion;
double result = DoAddtion(20, 30);
Console.WriteLine("Func带返回参数委托做加法结果为:{0}",DoAddtion(10,20));
calculate c=new calculate();
Action<double, double> DoSubstraction = c.substraction;
DoSubstraction(90, 20);
}
}
class calculate
{
public static double addtion(double x, double y)
{
return x + y;
}
public void substraction(double x, double y)
{
Console.WriteLine("Action不带返回参数委托做减法结果为:{0}",x-y);
}
}
}
输出结果:
Func带返回参数做加法结果为:30
Action不带返回参数委托做减法结果为:70
- 上一篇:VSCode设置中文语言显示
- 下一篇:C#中写xml 文件头部定义
-
2012-08-14网站建设及优化要从四个方面斟酌
-
2010-08-25javascript显示剩余字数
-
2010-08-10.NET的Session老不定时的过期 解决办法
-
2010-09-28.NET内置对象之Cache对象
-
2023-04-24Thinkphp6 中.htaccess文件设置伪静态
-
2010-12-09网站日志中,HTTP状态码是代表什么意思?
