全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

c#中的泛型委托详解

今天学习一下c#中的泛型委托。

1.一般的委托,delegate,可以又传入参数(<=32),声明的方法为  public delegate void SomethingDelegate(int a);

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace delegateSummary {
 public delegate void GetIntDelegate(int a); //声明一个委托
 public class getIntClass { 
 public static void SetDelegateString(int a,GetIntDelegate getIntDelegate) {//使用委托
  getIntDelegate(a);
 }
 public void getInt1(int a) { //方法1
  Console.WriteLine("getInt1方法调用,参数为:" + a);
 }
 public void getInt2(int a) { //方法2
  Console.WriteLine("getInt2方法调用,参数为:" + a);
 }
 }
 class Program {
 static void Main(string[] args) {
  getIntClass gc=new getIntClass();
  getIntClass.SetDelegateString(5, gc.getInt1);  //方法1,2作为委托的参数
  getIntClass.SetDelegateString(10, gc.getInt2); 
  Console.WriteLine("=====================");
  GetIntDelegate getIntDelegate;
  getIntDelegate = gc.getInt1;     //将方法1,2绑定到委托
  getIntDelegate += gc.getInt2;
  getIntClass.SetDelegateString(100, getIntDelegate); 
  Console.Read();
 } 
 }
}

输出结果,注意两种方式的不同,第一种将方法作为委托的参数,第二种是将方法绑定到委托。

2.泛型委托之Action,最多传入16个参数,无返回值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace delegateSummary {
 class Program {
 static void Main(string[] args) {
  TestAction<string>(getString, "WhiteTaken"); //传入方法
  TestAction<int>(getInt, 666);
  TestAction<int, string>(getStringAndInt, 666, "WhiteTaken");
  Console.Read();  
 }
 public static void TestAction<T>(Action<T> action,T p1) {        //Action传入一个参数测试
  action(p1);
 }
 public static void TestAction<T, P>(Action<T, P> action, T p1, P p2) { //Action传入两个参数测试
  action(p1,p2);
 }
 public static void getString(string a) {    //实现int类型打印
  Console.WriteLine("测试Action,传入string,并且传入的参数为:" +a);
 }
 public static void getInt(int a) {     //实现String类型打印
  Console.WriteLine("测试Action,传入int,并且传入的参数为:" + a);
 }
 public static void getStringAndInt(int a, string name) {    //实现int+string类型打印
  Console.WriteLine("测试Action,传入两参数,并且传入的参数为:" + a+":"+name);
 }
 }
}

测试结果:

3.泛型委托之Func,最多传入16个参数,有返回值。(写法与Action类似,只是多了返回值)

4.泛型委托之predicate(不是很常用),返回值为bool,用在Array和list中搜索元素。(没有用到过,等用到了再更新)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# c#  # 泛型委托  # C#内置泛型委托之Func委托  # C#内置泛型委托之Action委托  # 深入解析C#编程中泛型委托的使用  # C#泛型委托的用法实例分析  # C#中Predicate<T>与Func<T  # bool>泛型委托的用法实例  # C#基础之泛型委托实例教程  # C#中的多播委托和泛型委托  # 最多  # 返回值  # 绑定  # 两种  # 不是很  # 到过  # 用在  # 第二种  # 第一种  # 值为  # Tasks  # namespace  # delegateSummary  # static  # Threading  # GetIntDelegate  # WriteLine  # Console  # SetDelegateString  # getIntClass 


相关文章: 专业商城网站制作公司有哪些,pi商城官网是哪个?  如何有效防御Web建站篡改攻击?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  建站之星代理如何优化在线客服效率?  制作网页的网站有哪些,电脑上怎么做网页?  如何选择高效便捷的WAP商城建站系统?  大连网站设计制作招聘信息,大连投诉网站有哪些?  如何高效生成建站之星成品网站源码?  如何使用Golang安装API文档生成工具_快速生成接口文档  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  制作宣传网站的软件,小红书可以宣传网站吗?  5种Android数据存储方式汇总  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何高效完成自助建站业务培训?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  如何快速搭建二级域名独立网站?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Java解压缩zip - 解压缩多个文件或文件夹实例  如何制作一个表白网站视频,关于勇敢表白的小标题?  网站专业制作公司有哪些,做一个公司网站要多少钱?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  网站制作软件有哪些,制图软件有哪些?  如何在阿里云虚拟主机上快速搭建个人网站?  如何用wdcp快速搭建高效网站?  Python如何创建带属性的XML节点  宝塔面板如何快速创建新站点?  C++时间戳转换成日期时间的步骤和示例代码  上海网站制作开发公司,上海买房比较好的网站有哪些?  如何彻底卸载建站之星软件?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何选择高效可靠的多用户建站源码资源?  制作公司内部网站有哪些,内网如何建网站?  建站168自助建站系统:快速模板定制与SEO优化指南  C#怎么使用委托和事件 C# delegate与event编程方法  如何用PHP快速搭建高效网站?分步指南  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  制作农业网站的软件,比较好的农业网站推荐一下?  建站主机服务器选型指南与性能优化方案解析  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何通过免费商城建站系统源码自定义网站主题与功能?  如何选择网络建站服务器?高效建站必看指南  公司网站制作价格怎么算,公司办个官网需要多少钱?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。