Action 委托
来源:互联网 发布:app数据统计平台 编辑:程序博客网 时间:2024/06/06 11:38
原文链接:https://msdn.microsoft.com/zh-cn/library/system.action.aspx
封装一个方法,该方法不具有参数且不返回值。当你使用Action委托,则不需要显式定义一个委托封装的无参数的过程。
1、例如,下面的代码显式声明一个名为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(); }}2、下面的示例简化了此代码实例化Action而不是显式定义新的委托,并向其分配指定的方法的委托。
using System;using System.Windows.Forms;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"); Action showMethod = testName.DisplayToWindow; showMethod(); }}3、你还可以使用Action委托与 C# 中的匿名方法,如下面的示例所示。
using System;using System.Windows.Forms;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 Anonymous{ public static void Main() { Name testName = new Name("Koani"); Action showMethod = delegate() { testName.DisplayToWindow();} ; showMethod(); }}4、你还可以分配到 lambda 表达式Action委托实例,如下面的示例所示。
using System;using System.Windows.Forms;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 LambdaExpression{ public static void Main() { Name testName = new Name("Koani"); Action showMethod = () => testName.DisplayToWindow(); showMethod(); }}
阅读全文
0 0
- Action 委托
- Action委托
- Action委托
- Action 委托
- Action 委托和Action 委托
- 泛型委托Action
- Func和Action委托
- Action<T> 委托
- action outlet 委托delegate
- C# Action<T> 委托
- C# Action 委托
- 【C#】Action委托类型
- C# Action<T> 委托
- 【C#】Action委托类型
- C# Action委托方法
- Action与Func委托
- 委托--Func与Action
- C# Action委托类型
- Mysql 问题
- RESTful---SpringMVC学习笔记(十三)
- 两行代码搞定底部菜单栏的实现
- 现在,中国的互联网公司该不该走出国门?
- Eclipse-安卓-Unable to resolve target 'android-25'
- Action 委托
- Mysql事务以及加锁机制事务的特征ACID
- 【HDU 2187】悼念512汶川大地震遇难同胞——老人是真饿了(贪心)
- poj 3159 Candies(差分约束)
- 安卓系统编译遇到的问题
- 最简单的移动端pc端(解决苹果端的兼容问题)一键复制,保存到剪贴板
- 远程debug,jvm参数配置
- mysql主从配置
- Java NIO系列教程(十二) Java NIO与IO