码迷,mamicode.com
首页 > Windows程序 > 详细

C#中Action的使用

时间:2015-04-02 13:13:21      阅读:656      评论:0      收藏:0      [点我收藏+]

标签:

在日常使用delegate时,我们通常需要显示声明一个名为XXX的委托,而在使用Action委托时,不必显示定义一个封装无参数过程的委托。

比如正常使用delegate:

 1 using System;
 2 
 3 namespace MT
 4 {
 5     public delegate void ShowValue();//在这里显示声明一个委托
 6 
 7     public class Test
 8     {
 9         //在这里有一个Test类,类中有一个void的方法,作用是输出一个字符串
10         private string instanceName;
11         public Test(string name)
12         {
13             this.instanceName = name;
14         }
15         public void DisplayToConsole()
16         {
17             Console.WriteLine(this.instanceName);
18         }
19     }
20 
21     public class Program
22     {
23         //在Main函数里使用委托去调用这个方法
24         static void Main(string[] args)
25         {
26             Test name = new Test("Sirius");
27             ShowValue method = name.DisplayToConsole;
28             method();
29             Console.ReadKey();
30         }
31     }
32 }

Action就是这么个姿势:

1 static void Main(string[] args)
2 {
3     Test name = new Test("Sirius");
4     Action method = name.DisplayToConsole;
5     method();
6     Console.ReadKey();
7 }

 

当然,Action也可以有签名模板,Action<T>。

public void DisplayToConsole(string name)
{
      Console.WriteLine(name);
}
Action<string> method2 = name.DisplayToConsole;
method2("123");
Console.ReadKey();

顺便贴一张MSDN的牛逼图,这是我第一次看MSDN看到想笑……

技术分享

 

代码参考:https://msdn.microsoft.com/zh-cn/library/system.action(v=vs.110).aspx

C#中Action的使用

标签:

原文地址:http://www.cnblogs.com/xidu/p/4386464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!