亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

詳解Func 與Action 區別

2024-07-10 13:31:32
字體:
來源:轉載
供稿:網友

Func<T>、Action<T> 的區別于說明

一、Func

Func是一個.Net內置的委托。

Func<Result>,Func<T1,Result>是一個.Net內置的泛型委托。

Func<TResult>Func<T,TResult>Func<T1,T2,TResult>Func<T1,T2,T3,TResult>Func<T1,T2,T3,T4,TResult>

它有5種形式,只是參數個數不同;第一個是無參數,但是有返回值;

下面是一個簡單的普通委托來傳方法的示例。

private delegate string Say();public static string SayHello(){  return "Hello";}static void Main(string[] args){  Say say = SayHello;  Console.WriteLine(say());  Console.ReadKey();}

所以,在有時候,我們不知道一個接口同時要做什么操作的時候,我可以給它留一個委托。

為了更方便,.Net直接默認有了委托。我們再來試試.Net默認帶的委托。

public static string SayHello(){  return "Hello";}static void Main(string[] args){  Func<string> say = SayHello;  Console.WriteLine(say());  Console.ReadKey();}

如果需要參數的,還可以這樣傳一份。

public static string SayHello(string str){  return str + str;} static void Main(string[] args){  Func<string, string> say = SayHello;  string str = say("abc");    Console.WriteLine(str);   //輸出abcabc  Console.ReadKey();}

二、Action

Action<T>的用法與Func幾乎一樣,調用方法也類似。

ActionAction<T>Action<T1,T2>Action<T1,T2,T3>Action<T1,T2,T3,T4>
private delegate string Say();public static void SayHello(string str){  Console.WriteLine(str);}static void Main(string[] args){  Action<string> say = SayHello;  say("abc");  Console.ReadKey();}

三、Func與Action的區別

Func與Action作用幾乎一樣。只是

Func<Result>有返回類型;

Action<T>只有參數類型,不能傳返回類型。所以Action<T>的委托函數都是沒有返回值的。

四、Func與Action都支持Lambda的形式調用

還是以一個輸入后,返回重復一次的值作為示例。

Func<string, string> say = m => m + m;Console.WriteLine(say("abc"));    //輸出abcabc

五、最常見到Func的地方

通常我們最常見到Func是在方法的參數里如下面這樣:

string XXX(Func<string, string>)

咱們來看看Linq里面的其中一個Sum:

public static int Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);

里面看到兩點:

1、擴展方法,與這篇文章無關(擴展的是IEnumerable<TSource>,主要是為了能夠實現IEnumerable<TSource>接口的集合.出函數)。

2、Func<TSource, int> selector這個參數。

嘗試寫一個Linq的First函數吧,命名為First2。Linq源代碼里有很多異常情況處理,好多設計模式,可惜我不懂,只提取簡單邏輯了。

namespace ConsoleApplication2{  static class Extend  {    public static TSource First2<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)    {      //.Net本身的源代碼好多異常情況處理,好多設計模式,我也不懂,只提取邏輯      foreach (TSource item in source)      {        if (predicate(item))        {          return (item);        }      }      throw new Exception("不存在滿足條件的第一個元素!");    }  }  class Program  {    static void Main(string[] args)    {      List<int> ListInt = new List<int>(){ 1, 2, 3, 4, 5 };      int k = ListInt.First2(m => m > 4);   //輸出5      Console.WriteLine(k);       Console.ReadKey();    }  }}

以上所述是本文的全部內容,有問題的可以和小編聯系,謝謝對VeVb武林網的支持!


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品久久| 国产在线一区二区三区| 欧美激情精品久久久久久变态| 亚洲成人激情视频| 国产精品一区二区三区在线播放| 亚洲午夜精品视频| 欧美黄色性视频| 国产69精品久久久久9| 亚洲视频自拍偷拍| 欧美在线一区二区视频| 欧美视频在线看| 亚洲人成毛片在线播放| 亚洲在线免费视频| 日韩美女视频免费看| 国产一区二区三区网站| 欧美一区二区色| 国产精品成人在线| 亚洲欧洲成视频免费观看| 91在线观看免费高清| 欧美激情中文网| 国产成人免费91av在线| 久久久精品视频在线观看| 久久久亚洲影院你懂的| 91欧美激情另类亚洲| 91久久久国产精品| 韩国精品美女www爽爽爽视频| 国产精品爽爽爽| 亚洲mm色国产网站| 久久久久久久久中文字幕| 久久精品91久久香蕉加勒比| 国产精品久久久久久搜索| 亚洲欧美中文日韩v在线观看| 国产精品激情av电影在线观看| 中文在线不卡视频| 欧美日韩中文字幕| 成人黄色在线免费| 亚洲成人亚洲激情| 亚洲片在线资源| 4444欧美成人kkkk| 精品毛片三在线观看| 欧美刺激性大交免费视频| 欧美怡春院一区二区三区| 久久这里有精品| 亚洲国产天堂久久国产91| 欧美最猛黑人xxxx黑人猛叫黄| 久久综合伊人77777蜜臀| 亚洲成年人影院在线| 日日狠狠久久偷偷四色综合免费| 亚洲精品久久久一区二区三区| 欧美成人剧情片在线观看| 亚洲天堂色网站| 海角国产乱辈乱精品视频| 日韩在线免费观看视频| 久久成人精品视频| 欧美日韩国产综合视频在线观看中文| 日韩精品www| 色在人av网站天堂精品| 久久久久久久久久国产精品| 亚洲精品小视频在线观看| 亚洲国产日韩欧美在线99| 一区二区三区无码高清视频| 久久精品色欧美aⅴ一区二区| 在线国产精品播放| 国产成人精品视频在线观看| 久久人人97超碰精品888| 午夜精品一区二区三区在线视频| 久久久精品中文字幕| 91国产在线精品| 精品女同一区二区三区在线播放| 欧美日韩亚洲一区二| 97精品国产97久久久久久免费| 国产精品久久久久免费a∨| 91天堂在线视频| 日韩亚洲国产中文字幕| 日韩av在线一区二区| 国产精品久久电影观看| 日韩在线观看网站| 91牛牛免费视频| 欧美在线视频免费播放| 伊人久久久久久久久久久久久| 2023亚洲男人天堂| 亚洲第一网中文字幕| www.国产精品一二区| 欧美性生活大片免费观看网址| 亚洲乱码国产乱码精品精天堂| 亚洲一区二区在线播放| 国产精品一区二区三区久久久| 国产欧美婷婷中文| 国产一区二区三区高清在线观看| 色吧影院999| 国产日韩精品入口| 国产精品99久久久久久久久久久久| 国产免费一区二区三区在线能观看| 亚洲视频999| 色婷婷综合成人| 国产va免费精品高清在线观看| 国内外成人免费激情在线视频| 国产成人在线播放| 色综合久久中文字幕综合网小说| 久久久久久午夜| 欧美成人精品在线视频| 美女撒尿一区二区三区| 亚洲在线观看视频网站| 国产福利精品视频| 日韩精品在线免费观看| 欧美国产日韩精品| 欧美亚洲午夜视频在线观看| 久久久在线免费观看| 久久久久久久激情视频| 色婷婷av一区二区三区在线观看| 国内精品免费午夜毛片| 欧美野外猛男的大粗鳮| 亚洲精品电影网在线观看| 日韩在线中文字| 欧美电影在线免费观看网站| 欧美孕妇孕交黑巨大网站| 韩国美女主播一区| 亚洲自拍小视频免费观看| 日韩av免费观影| 全亚洲最色的网站在线观看| 亚洲精品在线不卡| 日韩av综合中文字幕| 成人黄色生活片| 57pao国产成人免费| 亚洲高清一区二| 国产精品www色诱视频| 日韩精品极品在线观看播放免费视频| 日韩av在线直播| 国产日韩中文在线| 亚洲伊人一本大道中文字幕| 欧美黑人狂野猛交老妇| 欧美精品中文字幕一区| 国内偷自视频区视频综合| 超碰精品一区二区三区乱码| 亚洲美女视频网| 狠狠做深爱婷婷久久综合一区| 欧美激情18p| 国产亚洲欧美日韩一区二区| 日本精品久久中文字幕佐佐木| 亚洲成人在线网| 久久青草精品视频免费观看| 亚洲国语精品自产拍在线观看| 91高清在线免费观看| 日韩美女主播视频| 成人免费视频在线观看超级碰| 91日韩在线播放| 成人午夜在线观看| 日韩欧美a级成人黄色| 国产精品成久久久久三级| 精品露脸国产偷人在视频| 成人国内精品久久久久一区| 国产成人在线视频| 欧美肥臀大乳一区二区免费视频| 国产69精品久久久久99| 91久久久久久久久久久久久| 国内精品一区二区三区| 欧美亚州一区二区三区| 欧美一级大片在线观看| 国产日韩欧美综合| 亚洲视频电影图片偷拍一区| 久久色在线播放| 91免费综合在线| 国产91精品久久久| 国产成人aa精品一区在线播放|