C#内置泛型委托之Action委托
1、什么是Action泛型委托
Action
2、Action委托定义
查看Action的定义:
using System.Runtime.CompilerServices;
namespace System{//// 摘要://封装一个方法,该方法不具有参数且不返回值。[TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]public delegate void Action();
}
你会发现,Action其实就是没有返回值的delegate。
3、示例
Action委托至少0个参数,至多16个参数,无返回值。
Action 表示无参,无返回值的委托。
Action
Action
Action
文章图片
代码示例如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ActionDemo{class Program{static void Main(string[] args){// 无参数无返回值的委托Action action1 = new Action(ActionWithNoParaNoReturn);
action1();
Console.WriteLine("----------------------------");
// 使用delegateAction action2 = delegate { Console.WriteLine("这里是使用delegate");
};
// 执行action2();
Console.WriteLine("----------------------------");
// 使用匿名委托Action action3 = () => { Console.WriteLine("这里是匿名委托");
};
action3();
Console.WriteLine("----------------------------");
// 有参数无返回值的委托Action
【C#内置泛型委托之Action委托】运行结果:
文章图片
4、真实示例
先看下面一张截图:
文章图片
从截图中可以看出:ForEach()方法的参数是一个参数类型是T的无返回值的Action委托,下面的示例中利用Action委托作为参数传递给ForEach()方法。
1、定义Student实体类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ActionDemo{public class Student{public int Id { get;
set;
}public string Name { get;
set;
}public int Age { get;
set;
}public int Sex { get;
set;
}}}
2、利用ForEach()方法输出集合内容
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ActionDemo{public class ActionTest{public static void Test(){List list = new List(){new Student(){Id=1,Name="张三",Age=19,Sex=1},new Student(){Id=2,Name="李四",Age=20,Sex=2},new Student(){Id=3,Name="王五",Age=23,Sex=1},new Student(){Id=4,Name="赵六",Age=18,Sex=1}};
// Action委托作为参数传递给ForEach()方法list.ForEach(student =>{Console.WriteLine($"姓名:{student.Name},年龄:{student.Age}");
});
}}}
3、在Main()方法中调用
ActionTest.Test();
4、结果
文章图片
到此这篇关于C#内置泛型委托之Action委托的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- 等离子显示器测试软件,等离子显示器驱动芯片内置ERC功能的测试方法
- Asp.Net|【小5聊】Vue与.net Core 如何接收List<T>泛型参数
- Qt-数据库应用|Qt数据库应用14-超级自定义委托
- Java开发|05-JavaSE【泛型,数据结构,List接口,Set接口,Collections工具类】
- JavaSE进阶|JavaSE08_泛型&Set$TreeSet&数据结构
- SQL|SQL Server内置的HTAP技术
- c/c++|c++泛型编程——模板
- C#对集合进行排序
- springboot内置tomcat调优并发线程数解析
- 泛型的类型擦除后,fastjson反序列化时如何还原()