封装一个方法,该方法不具有参数并且不返回值
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(); } } }
时间: 2024-11-03 13:03:26