C#-Func<>
阿新 • • 發佈:2020-08-04
與C#-Action十分相似,Func<>也是c#內建的委託型別,不同的是,Func<>只能用來引用具有返回值的方法,也就是說,在使用它時,至少需要在尖括號內指定一種型別,當僅指定一種型別時,表示引用具有返回值但沒有引數的方法,當指定多種型別時,其中最後一個型別表示返回值型別,前面的表示所引用方法的引數列表的型別。
有一下兩個簡單的例子:
指定一個型別時
1 static void Main(string[] args) 2 { 3 Func<string> a=Gettomorrow; 4 Console.WriteLine(a());5 6 } 7 public static string Gettomorrow() 8 { 9 return DateTime.Now.AddDays(1).Date.ToString(); 10 } 11 12 // 2020/8/5 0:00:00
當指定兩個型別時
1 static void Main(string[] args) 2 { 3 Func<int, double> calc = Factorial; 4Console.WriteLine(calc(5)); 5 6 } 7 8 public static double Factorial(int num) 9 { 10 //求一個整數的階乘 11 int res = 1; 12 for(int i=2;i<=num;i++) 13 { 14 res *= i; 15 } 16 returnres; 17 } 18 // 120
與Action一樣,Func<>最多支援16個引數。