C#内置泛型委托中Action委托是什么
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,小编给大家分享一下C#内置泛型委托中Action委托是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、什么是Acti
千家信息网最后更新 2025年01月31日C#内置泛型委托中Action委托是什么
小编给大家分享一下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("----------------------------"); // 使用delegate Action action2 = delegate { Console.WriteLine("这里是使用delegate"); }; // 执行 action2(); Console.WriteLine("----------------------------"); // 使用匿名委托 Action action3 = () => { Console.WriteLine("这里是匿名委托"); }; action3(); Console.WriteLine("----------------------------"); // 有参数无返回值的委托 Actionaction4 = new Action (ActionWithPara); action4(23); Console.WriteLine("----------------------------"); // 使用delegate Action action5 = delegate (int i) { Console.WriteLine($"这里是使用delegate的委托,参数值是:{i}"); }; action5(45); Console.WriteLine("----------------------------"); // 使用匿名委托 Action action6 = (string s) => { Console.WriteLine($"这里是使用匿名委托,参数值是:{s}"); }; action6("345"); Console.WriteLine("----------------------------"); // 多个参数无返回值的委托 Action action7 = new Action (ActionWithMulitPara); action7(7, "abc"); Console.WriteLine("----------------------------"); // 使用delegate Action action8 = delegate (int i1, int i2, string s) { Console.WriteLine($"这里是三个参数的Action委托,参数1的值是:{i1},参数2的值是:{i2},参数3的值是:{s}"); }; action8(12, 34, "abc"); Console.WriteLine("----------------------------"); Action action9 = (int i1,int i2, string s1,string s2) => { Console.WriteLine($"这里是使用四个参数的委托,参数1的值是:{i1},参数2的值是:{i2},参数3的值是:{s1},参数4的值是:{s2}"); }; // 执行委托 action9(34,56, "abc","def"); Console.ReadKey(); } static void ActionWithNoParaNoReturn() { Console.WriteLine("这是无参数无返回值的Action委托"); } static void ActionWithPara(int i) { Console.WriteLine($"这里是有参数无返回值的委托,参数值是:{i}"); } static void ActionWithMulitPara(int i,string s) { Console.WriteLine($"这里是有两个参数无返回值的委托,参数1的值是:{i},参数2的值是:{s}"); } }}
运行结果:
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() { Listlist = 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委托是什么"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
委托
参数
方法
示例
内容
篇文章
封装
C#
截图
结果
三个
不怎么
不用
两个
也就是
也就是说
代码
多个
大部分
姓名
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全值班方案
服务器com口管理
崇明区工商软件开发代理价格
阿里云服务器是正品吗
ip网络技术的发展史
网络技术员常用app
数据库如何增加链接
高阳县网络安全和信息化
朔州网络技术价格
计算机网络技术大学预期目标
英雄联盟国际服服务器选择
大数据标签用数据库怎么实现
华为高斯数据库考试费多少
办理软件开发增值税减免
数据库数据可用性是什么
华为手机如何设置网络安全
p6如何登陆数据库
dede重装 数据库密码
软件开发辛苦吗
qq飞车数据库
广东软件开发者能赚多少钱
初级数据库工程师
嘉兴智合软件开发服务器租用
华为服务器远程默认密码
中专可以学计算机网络技术吗
某某公司的网络安全方案
高频交易软件开发需求
网络安全法 检验检疫
连接云服务器的软件哪个好
外部数据库新建表