日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

C# 中的 Action 和 Func 委托

來源: 責編: 時間:2024-05-30 17:16:54 190觀看
導讀在C#中,Action<T>和Func<T>是兩種常用的泛型委托,它們為開發者提供了一種類型安全的方式來定義和處理方法引用。Action<T>和Func<T>的主要區別在于,Action<T>用于封裝沒有返回值(即返回類型為void)的方法,而Func<T>則用于封

在C#中,Action<T>和Func<T>是兩種常用的泛型委托,它們為開發者提供了一種類型安全的方式來定義和處理方法引用。Action<T>和Func<T>的主要區別在于,Action<T>用于封裝沒有返回值(即返回類型為void)的方法,而Func<T>則用于封裝有返回值的方法。7K828資訊網——每日最新資訊28at.com

7K828資訊網——每日最新資訊28at.com

Action委托

Action<T>委托用于表示接受特定類型參數并不返回任何值(void)的方法。T在這里是一個占位符,代表委托可以接受的參數類型。Action<T>可以有多個類型參數,比如Action<T1, T2, ...>,最多可以支持16個類型參數。7K828資訊網——每日最新資訊28at.com

示例代碼:7K828資訊網——每日最新資訊28at.com

using System;class Program{    static void Main()    {        // 定義一個 Action<string> 委托實例,并關聯一個方法        Action<string> greet = Greet;                // 調用委托實例        greet("World");    }        static void Greet(string name)    {        Console.WriteLine($"Hello, {name}!");    }}

在這個例子中,我們定義了一個Greet方法,它接受一個字符串參數并不返回任何值。然后,我們創建了一個Action<string>委托實例,并將其關聯到Greet方法上。最后,我們通過委托實例調用了Greet方法。7K828資訊網——每日最新資訊28at.com

Func委托

與Action<T>不同,Func<T>委托用于表示具有返回值的方法。Func<T>的第一個類型參數是輸入參數的類型,最后一個類型參數是返回值的類型。例如,Func<int, int>表示接受一個int參數并返回一個int值的方法。7K828資訊網——每日最新資訊28at.com

示例代碼:7K828資訊網——每日最新資訊28at.com

using System;class Program{    static void Main()    {        // 定義一個 Func<int, int> 委托實例,并關聯一個方法        Func<int, int> square = CalculateSquare;                // 調用委托實例并打印結果        int result = square(5);        Console.WriteLine($"The square of 5 is {result}.");    }        static int CalculateSquare(int number)    {        return number * number;    }}

在這個例子中,我們定義了一個CalculateSquare方法,它接受一個整數參數并返回一個整數結果。然后,我們創建了一個Func<int, int>委托實例,并將其關聯到CalculateSquare方法上。最后,我們通過委托實例調用了CalculateSquare方法,并打印了結果。7K828資訊網——每日最新資訊28at.com

總結

Action<T>和Func<T>委托是C#中非常有用的工具,它們提供了一種簡潔、類型安全的方式來引用和調用方法。通過使用這些委托,開發者可以更加靈活地編寫可重用的代碼,并輕松地實現回調函數和事件驅動的設計模式。在實際開發中,根據方法是否有返回值來選擇使用Action<T>還是Func<T>委托是非常重要的。7K828資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-91823-0.htmlC# 中的 Action 和 Func 委托

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 十個經典 Python 設計模式解析

下一篇: C語言字符串為什么以/0 作為結束標志?

標簽:
  • 熱門焦點
  • 自動化在DevOps中的力量:簡化軟件開發和交付

    自動化在DevOps中扮演著重要角色,它提升了DevOps的效能。通過自動化工具和方法,DevOps團隊可以實現以下目標:消除手動和重復性任務。簡化流程。在整個軟件開發生命周期中實現更
  • 使用LLM插件從命令行訪問Llama 2

    最近的一個大新聞是Meta AI推出了新的開源授權的大型語言模型Llama 2。這是一項非常重要的進展:Llama 2可免費用于研究和商業用途。(幾小時前,swyy發現它已從LLaMA 2更名為Lla
  • 一個注解實現接口冪等,這樣才優雅!

    場景碼猿慢病云管理系統中其實高并發的場景不是很多,沒有必要每個接口都去考慮并發高的場景,比如添加住院患者的這個接口,具體的業務代碼就不貼了,業務偽代碼如下:圖片上述代碼有
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 慕巖炮轟抖音,百合網今何在?

    來源:價值研究所 作者:Hernanderz&ldquo;難道就因為自己的一個產品牛逼了,從客服到總裁,都不愿意正視自己產品和運營上的問題,選擇逃避了嗎?&rdquo;這一番話,出自百合網聯合創
  • 7月4日見!iQOO 11S官宣:“雞血版”驍龍8 Gen2+200W快充加持

    上半年已接近尾聲,截至目前各大品牌旗下的頂級旗艦都已悉數亮相,而下半年即將推出的頂級旗艦已經成為了數碼圈爆料的主流,其中就包括全新的iQOO 11S系
  • iQOO 11S或7月上市:搭載“雞血版”驍龍8Gen2 史上最強5G Soc

    去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,iQOO 11不僅全球首發2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競屏,同時在快充
  • 微軟發布Windows 11新版 引入全新任務欄狀態

    近日,微軟發布了Windows 11新版,而Build 22563更新主要引入了幾周前曝光的平板模式任務欄等,系統更流暢了。更新中,Windows 11加入了專門針對平板優化的任務欄
  • 親歷馬斯克血洗Twitter,硅谷的苦日子在后頭

    文/劉哲銘  編輯/李薇  馬斯克再次揮下裁員大刀。  美國時間11月14日,Twitter約4400名外包員工遭解雇,此次被解雇的員工的主要工作為內容審核等。此前,T
Top 主站蜘蛛池模板: 迭部县| 宁蒗| 左权县| 潞西市| 南通市| 嘉义县| 台东县| 丘北县| 克东县| 澜沧| 阿拉善右旗| 娄底市| 长春市| 邻水| 政和县| 三穗县| 米脂县| 馆陶县| 四平市| 磐石市| 涞水县| 靖江市| 开原市| 来安县| 卢湾区| 甘孜| 仁布县| 尼玛县| 张家界市| 舞阳县| 广水市| 成武县| 岱山县| 平定县| 囊谦县| 吉安县| 兴安县| 永吉县| 沅江市| 通道| 鸡西市|