码迷,mamicode.com
首页 > 其他好文 > 详细

Action委托

时间:2015-04-15 13:18:08      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

 

封装一个方法,该方法不具有参数并且不返回值

  public delegate void Action();

 

在使用 Action 委托时,不必显式定义一个封装无参数过程的委托。 例如,以下代码显式声明了一个名为 ShowValue 的委托,并将对 Name.DisplayToWindow 实例方法的引用分配给其委托实例。

using System;
using System.Windows.Forms;

public delegate void ShowValue();

public class Name
{
   private string instanceName;

   public Name(string name)
   {
      this.instanceName = name;
   }

   public void DisplayToConsole()
   {
      Console.WriteLine(this.instanceName);
   }

   public void DisplayToWindow()
   {
      MessageBox.Show(this.instanceName);
   }
}

public class testTestDelegate
{
   public static void Main()
   {
      Name testName = new Name("Koani");
      ShowValue showMethod = testName.DisplayToWindow;
      showMethod();
   }
}

以下示例简化了此代码,它所用的方法是实例化 Action 委托,而不是显式定义一个新委托并将命名方法分配给该委托。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;



namespace Abner_Action
{
    public class Name
    {
        private string instanceName;

        public Name(string name)
        {
            this.instanceName = name;        
        }

        public void DisplayToConsole()
        {
            Console.WriteLine(this.instanceName);
        }           
    
    }

    class Program
    {
        static void Main(string[] args)
        {
            Name testname = new Name("Abner");
            Action showMethod = testname.DisplayToConsole;
            showMethod();
        }
    }
}

  

  

Action委托

标签:

原文地址:http://www.cnblogs.com/YanYongSong/p/4427954.html

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