【C#】Func委託型別和匿名方法
阿新 • • 發佈:2019-01-07
using System; /// <summary> /// Func<int> 必須有一個返回值型別,當前為無引數,返回值型別是int的方法 /// Func<string,int> 這種情況,string是方法的引數,int是方法的返回值 /// 方法的返回值在<>的最後一個,除了最後一個型別,都是方法的引數 /// 引數個數在0-16個之間,返回值型別必須是1個 /// </summary> namespace Func委託型別和匿名方法 { class MainClass { //---------------------------------------------------------- private static string GetName () { return "Sea"; } //---------------------------------------------------------- private static int GetInfo (string name) { Console.WriteLine ("名字是{0}", name); return 18; } //---------------------------------------------------------- public static void Main (string[] args) { //------------------------------------------------------- // 委託一個返回值是string型別的方法 Func<string> name = GetName; Console.WriteLine (name ()); // 輸出結果:Sea //------------------------------------------------------- // <>中至少有一個型別,也可以有多個型別 // 當只有一個型別的時候,該型別就是方法的返回值型別 // 當有多個型別的時候,最有一個為返回值型別,前面的為方法的引數型別 // 如下行的委託就是一個返回值是int型別,引數是string型別 Func<string,int> info = GetInfo; info ("海洋"); //-----------------------匿名方法------------------------- // 從上面的程式碼其實我們可以看得出來,每一個委託的定義都必須通過一個能匹配的方法來完成 // 然而有時候,用來初始化委託用的方法並不一定就是我們想用的,也許僅僅是為了初始化委託 // 注意委託裡的引數名會使用Main函式裡的變數名字 Func<string,int> info2 = delegate (string name2) { return 18; }; } } }