C# Func和Action用法以及區別和使用Lambda表達式


Func和Actoin區別於定義:

Func和Action是一種委托,這是在3.5里面新增的,2.0里面我們使用委托是用Delegate,Func位於System.Core命名空間下,使用委托可以提升效率,例如在反射中使用就可以彌補反射所損失的性能。

Action<T>和Func<T,TResult>的功能是一樣的,只是Action系列的委托定義的是沒有返回值(返回值為void)的委托而Func系列的委托定義的是返回值的委托。

Func用法:

Func<int, bool> func = x => x == 5 ? true : false;
            var bo = func(4);
            Console.WriteLine(bo);

第一個參數為輸入參數,第二個參數為輸出值,這時會打印false。

Action用法:

Action<int, int> action = (a, b) => Console.WriteLine(a + b);
            action(1, 2);

因為Action是無返回值的(void),所有這兩個參數都是輸入參數,這時候會打印3。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM