C#中的Action<>和Func<>的那些事

用過(guò)C#的委托的同學(xué)都是這Action<> 和 Func<>都是委托【代理】的簡(jiǎn)寫(xiě)形式?。?!

我們先看看定義委托和使用委托的代碼:

public delegate void delegate1(string str);

public static void HellowChinese(string strChinese)

{

? ? ? ? ?Console.WriteLine("早上好," + strChinese);

? ? ? ? ?Console.ReadLine();

}

delegate1 d = new delegate1(HellowChinese);

d("Mr wang");

接下來(lái)看看Action<> 和 Func<> 的寫(xiě)法

一、【action<>】指定那些只有輸入?yún)?shù),沒(méi)有返回值的委托

public static void HellowChinese(string strChinese)? {? ? ??

? ? ? ? Console.WriteLine("早上好," + strChinese);? ? ??

? ? ? ? Console.ReadLine();?

}? ??

Action<string> ? action = HellowChinese;

action("Spring.");

(注意:就是相當(dāng)于省去了定義委托的步驟了。)


二、func<> 這個(gè)和上面的那個(gè)是一樣的,區(qū)別是需要有返回值的方法!

public static string HelloEnglish(string strEnglish)? {? ? ??

? ? ? ? return "Hello." + strEnglish;??

}? ??

Func<string,string> ? f = HelloEnglish;

Console.WriteLine(f("Srping ji"));

Console.ReadLine();

(注意:Func<> 里面參數(shù),最后一個(gè)參數(shù)表示方法的返回類(lèi)型)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • 1. [C#語(yǔ)言基礎(chǔ)]請(qǐng)簡(jiǎn)述拆箱和裝箱。 答: 裝箱操作: 值類(lèi)型隱式轉(zhuǎn)換為object類(lèi)型或由此值類(lèi)型實(shí)現(xiàn)的任何...
    胤醚貔貅閱讀 4,847評(píng)論 1 29
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,740評(píng)論 18 399
  • 目錄本次給大家介紹的是我收集以及自己個(gè)人保存一些.NET面試題第二篇簡(jiǎn)介1.接口2.您在什么情況下會(huì)用到虛方法或抽...
    寒劍飄零閱讀 1,995評(píng)論 0 10
  • 父親已經(jīng)離開(kāi)我一年半了,每每想起仍然哽咽的不能說(shuō)話,只有豆大的眼淚往下掉,以前我從來(lái)不覺(jué)得我是一個(gè)會(huì)流眼淚的人,直...
    豆豆熊閱讀 550評(píng)論 5 3