泛型委托Action与ActionT
2024-08-29 07:40:37
以前都是自己写委托,其实系统内部给我们系统了委托的。
Action ——委托的非泛型版本就是一个无参数无返回值的委托。
Action<T>——委托的泛型版本是一个无返回值,但是参数个数及类型可以改变的委托。
Func<T>——委托只有泛型版本的,接受参数个数可以是若干个,也可以没有参数,但是一定要有返回值
class Program
{
//定义委托
//public delegate void adddelegate();
static void Main(string[] args)
{
//【1】使用自己定义的委托
//adddelegate my = add;
//if (my!=null)
//{
// my();
//}
//【2】使用系统委托
Action my = add;
if (my!=null)
{
my.Invoke();
}
Console.ReadKey();
} static void add()
{ Console.WriteLine("你好世界");
}
}
泛型委托
数据类型可以改变的委托
理解:比如你要写一个有参数string类型的委托那你就需要定义一个string参数类型的委托,我这个类型又要变成int,你还要写个int参数的委托那是bool的还要写个bool的委托
这个样很麻烦。泛型委托因此而生。
class Program
{
//定义泛型委托
public delegate void PrintDelegate<T>(T str);
static void Main(string[] args)
{
//根据泛型委托来接收方法
PrintDelegate<int> my2 = add2;
//给泛型委托传递参数
my2.Invoke();
PrintDelegate<string> my = add;
my("?");
//使用系统Action<>泛型委托
Action <string> my3=add;
//使用多个参数的泛型Action委托
Action<int, string> my4 = add2;
my4.Invoke(365,"中国");
my3("??"); Console.ReadKey();
}
static void add(string a)
{ Console.WriteLine("你好世界"+a);
}
static void add2(int a)
{ Console.WriteLine("你好世界" + a);
}
}
最新文章
- 取出session中的所有属性与值的方法
- Struts2基础
- Linux free命令详解(转)
- C#、.NET网络请求总结(WebClient和WebRequest)
- 安装SQL Server驱动到Maven仓库[转]
- [改善Java代码]警惕自增的陷阱
- Could not initialize class org.apache.log4j.LogManager 报错
- logstash 处理各种时间格式
- LSD-FET430UIF与MSP-FET430UIF
- 三:Redis连接池、JedisPool详解、Redisi分布式
- c语言几个松散的地方(不足的地方,不严谨的地方,它容易出错的地方)。
- JavaIO
- koa 写简单服务
- 计算机基础-C语言-16章-数组应用-计算字符串长度
- 常用linux命令及shell脚本
- 基于json-lib-2.2.2-jdk15.jar的JSON解析工具类大集合
- npm 常用指令
- ZOJ-2972-Hurdles of 110m(线性dp)
- maven-plugins说明
- hihocoder 1093 SPFA算法
热门文章
- 实验了一下LitSphere做车漆
- API Test Postman接口测试之高级篇1
- ClamAV学习【7】——病毒库文件格式学习
- Java50道经典习题-程序19 输入行数打印菱形图案
- vue 动态组件
- LCS - Longest Common Substring(spoj1811) (sam(后缀自动机)+LCS)
- WebLogic “Java 反序列化”过程远程命令执行
- 给 console 添加颜色
- Linux RPM和YUM
- [LibreOJ #2983]【WC2019】数树【计数】【DP】【多项式】