C#委托

chenxiaojie 2020-06-18 原文

1、首先委托,就是和现实生活中的委托别人办事一样!

  例如A要做买苹果,但是A不想自己去买,就叫B去买,

  这个B就是委托(这里好像骂街了!别在意),B去买之前就肯定要就要知道A要买什么样的苹果,买多少之类的信息。

  A就说:“我一个一个和你说太麻烦了,你拿这个清单去照着买就行了”,然后B就拿这清单去了水果店。

  B跟水果店老板说:“啥也别问,照着清单上做进行,不要在这跟我逼逼赖赖的”

  水果店老板也就只有照着清单上写的做了。(这里的水果店老板就是执行者,执行了苹果这事)

这一套流程下来就是委托,而且是无返回的类型,水果店把苹果B,B把苹果交给交给A后,这就是有反回的类型

2、代码

  1. static FileStream fs;
  2. static StreamWriter sw;
  3. // 委托声明
  4. public delegate void printString(string s);//我是委托清单字符串的委托都可以写
  5. // 该方法打印到控制台
  6. public static void WriteToScreen(string str)//我是执行者1
  7. {
  8. Console.WriteLine("The String is: {0}", str);
  9. }
  10. // 该方法打印到文件
  11. public static void WriteToFile(string s)//我是执行者2
  12. {
  13. fs = new FileStream(@"C:\message.txt", FileMode.Append, FileAccess.Write);
  14. sw = new StreamWriter(fs);
  15. sw.WriteLine(s);
  16. sw.Flush();
  17. sw.Close();
  18. fs.Close();
  19.       }
  20.       // 该方法把委托作为参数,并使用它调用方法
  21.       public static void sendString(printString ps)//PS是委托清单
  22.       {
  23.         //我是委托人
  24.         //我按照清单委托printString去帮我做这件事
  25.         ps("Hello World");
  26.       }
  27. static void Main(string[] args)
  28. {
  29. printString ps1 = new printString(WriteToScreen);//生成委托清单
  30. printString ps2 = new printString(WriteToFile);//生成委托清单
  31. sendString(ps1);//把清单交给委托人
  32. sendString(ps2);
  33. Console.ReadKey();
  34. }

 

大致就是这样,有不同意见的或者有更好的,希望在评论区留言!!!

纯属自作,如有雷同,纯属巧合,禁止用作商业用途

  !!!

发表于
2020-06-18 10:56 
乱世晓小 
阅读(
评论(
编辑 
收藏

 

版权声明:本文为chenxiaojie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chenxiaojie/p/13156429.html

C#委托的更多相关文章

  1. C#委托(delegate、Action、Func、predicate)和事件

    C#委托(delegate、Action、Func、predicate)和事件 C#委托(delegate、A […]...

随机推荐

  1. 查看局域网指定IP的电脑名

    nbtstat -a 192.168.0.139 节点 IP 址址: [192.168.0.140] 范围 I […]...

  2. Volatile的那些事

    上一篇中,我们了解了Synchronized关键字,知道了它的基本使用方法,它的同步特性,知道了它与Java内 […]...

  3. jQuery 总结

    Tips$(function(){}) 页面加载完成后运行获取元素jQuery 元素选择器jQuery 使用 CSS 选择器来选取 HTML 元素。$("p") 选取 元素。$("p.intro") 选取所有 class...

  4. maven安装配置及使用maven创建一个web项目

     今天开始学习使用maven,现在把学习过程中的资料整理在这边。 第一部分.maven安装和配置。 http: […]...

  5. 数据结构-各种树的定义

    术语 节点深度:对任意节点x,x节点的深度表示为根节点到x节点的路径长度。所以根节点深度为0,第二层节点深度为 […]...

  6. Codeforces 1365D Solve The Maze

    题目大意: 在一个 \(n * m\) 的矩阵中,有空地、坏人、好人和墙。你可以将空地变成墙来堵住坏人。\(( […]...

  7. 干货丨ARM、MCU、DSP、FPGA、SOC各是什么?区别是什么?

    https://www.iyiou.com/p/42478.html 1、ARM ARM处理器是Acorn计算 […]...

  8. 论文阅读 | DeepDrawing: A Deep Learning Approach to Graph Drawing

    作者:Yong Wang, Zhihua Jin, Qianwen Wang, Weiwei Cui, Ten […]...