博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Actiion Func ;Donet framework 中已经定义好的委托
阅读量:4325 次
发布时间:2019-06-06

本文共 3790 字,大约阅读时间需要 12 分钟。

在项目开发中特别是多线程项目中时常用到委托,通常情况下我们自己定义我们自己的委托,其实系统已经为我们定义好了大部分功能都能用上的委托,如下

希望对大家有所帮助

Donet framework 中定义的委托:

 
一:Action 与 Action<T>
         
   Action 委托
             封装一个方法,该方法不具有参数并且不返回值。
            
命名空间:   
            
程序集:    mscorlib (在 mscorlib.dll 中)
            语法:  public   delegate   void  Action()
 
           Action <
T >   委托
          封装一个方法,该方法只有一个参数并且不返回值。 
           命名空间:   
           
程序集:   mscorlib (在 mscorlib.dll 中)
           语法:  public   delegate   void  Action< in  T>( T obj)

      Action 委托例子  REF ADDR:
     public   class  Anonymous
{   public static void Main()   {      Name testName = new Name("Koani");      Action showMethod = delegate() { testName.DisplayToWindow();} ;      showMethod();   }  }
Action
委托例子 REF ADDR:
using System;using System.Windows.Forms;public class TestAnonMethod{   public static void Main()   {      Action
messageTarget; if (Environment.GetCommandLineArgs().Length > 1) messageTarget = delegate(string s) { ShowWindowsMessage(s); }; else messageTarget = delegate(string s) { Console.WriteLine(s); }; messageTarget("Hello, World!"); } private static void ShowWindowsMessage(string message) { MessageBox.Show(message); }}
以上为.net framework 2.0以上版本都支持 Action
, Action
, Action
委托 Action
例子: Action
例子: Action
例子: 以上的委托在.net framework 3.5 以上版本都支持,2.0的版本不支持 现在Action委托已经到可以拥有16个输入参数,不过从5个参数到16个参数这些Action只有在.net framework 4.0 以上的版本才支持 例子请参考
------------------------------------huali de fengexian------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
二:Func
与 Fun

Func<TResult> 委托

封装一个不具有参数但却返回 TResult 参数指定的类型值的方法。
命名空间:   程序集:  mscorlib(在 mscorlib.dll 中)
语法:public delegate TResult Func
()
 
Func
例子: ERF ADDR:
public class Anonymous{   public static void Main()   {      OutputTarget output = new OutputTarget();      Func
methodCall = delegate() { return output.SendToFile(); }; if (methodCall()) Console.WriteLine("Success!"); else Console.WriteLine("File write operation failed."); }}

Func<TTResult> 委托

封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。

 

命名空间:   程序集:  mscorlib(在 mscorlib.dll 中)
语法:public delegate TResult Func
(T arg)
Func<T,TResult>例子: REF ADDR : 
using System;public class GenericFunc{   public static void Main()   {      // Instantiate delegate to reference UppercaseString method      Func
convertMethod = UppercaseString; string name = "Dakota"; // Use delegate instance to call UppercaseString method Console.WriteLine(convertMethod(name)); } private static string UppercaseString(string inputString) { return inputString.ToUpper(); }}
 
 
using System;public class Anonymous{   public static void Main()   {      Func
convert = delegate(string s) { return s.ToUpper();}; string name = "Dakota"; Console.WriteLine(convert(name)); }} framework 3.5 4.0 :(0-4个输入参数)   public delegate TResult Func
()   public delegate TResult Func
(T arg)
public delegate TResult Func
(T1 arg1,T2 arg2) ………… public delefate TResult Func
(T1 arg1,T2 arg2,T3 arg3 T4 arg4) 四个输入参数 framework 4.0 :支持上边的以外 还支持 到 十六个输入参数 public delegate void Action
(
T1 arg1,	T2 arg2,	T3 arg3,	T4 arg4,	T5 arg5,	T6 arg6,	T7 arg7,	T8 arg8,	T9 arg9,	T10 arg10,	T11 arg11,	T12 arg12,	T13 arg13,	T14 arg14,	T15 arg15,	T16 arg16)见:http://msdn.microsoft.com/zh-cn/library/bb534303
 
  
 

转载于:https://www.cnblogs.com/beixing/archive/2012/07/24/2605818.html

你可能感兴趣的文章
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-4.动态Sql语句Mybaties SqlProvider...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-1.单机和分布式应用的登录检验讲解...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-3.登录检验JWT实战之封装通用方法...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-2.使用Mybatis注解开发视频列表增删改查...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-2.微信扫一扫功能开发前期准备...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-3.Vidoe相关接口完善和规范协议...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-3.微信Oauth2.0交互流程讲解...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-5.PageHelper分页插件使用
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-6.微信扫码登录回调本地域名映射工具Ngrock...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-2.微服务下登录检验解决方案 JWT讲解...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-8.用户模块开发之保存微信用户信息...
查看>>
HDU 5353 Average
查看>>
进程和计划管理
查看>>
MQ_ActiveMQ环境部署+C#推送和接收消息
查看>>
Ubuntu16.04上使用Anaconda3的Python3.6的pip安装UWSGI报错解决办法
查看>>
学习笔记11.6
查看>>
高效中的细节注意
查看>>
MySQL 之 库操作
查看>>
Python 最抢手、Java 最流行,前线程序员揭秘 2019 软件开发现状
查看>>