c#委托之Action、Func

原创 Laughing  2017-09-17 16:32  阅读 249 次 评论 0 条

简单来讲,委托其实就是为了调用方法。这里,我们介绍两种特殊的委托ActionFunc。它们最多允许16种参数类型,其中Action没有返回值,Func有返回值。

  1. using System;  
  2. using System.Reflection;  
  3. using System.Diagnostics.Tracing;  
  4.   
  5. namespace me.lisen.Practice  
  6. {  
  7.     delegate void IntMethodInvoker(int x);  
  8.     delegate double TwoLongsOp(double first, double second);  
  9.     delegate string GetAsString();  
  10.   
  11.     class MainClass  
  12.     {  
  13.         static double AddTwo(double d){  
  14.             return d + 2;  
  15.         }  
  16.           
  17.         static void ProcessAndDisplayNumber(Func<double,double> action,double value){  
  18.             double result = action(value);  
  19.             Console.WriteLine(result);  
  20.         }  
  21.   
  22.         static void AddTwoAction(double d){  
  23.             Console.Write(d+2);  
  24.         }  
  25.   
  26.         static void ProcessAndDisplayNumberAction(Action<double> action,double value){  
  27.             action(value);  
  28.         }  
  29.   
  30.         public static void Main(string[] args)  
  31.         {  
  32.             Console.WriteLine("Func");  
  33.             ProcessAndDisplayNumber(AddTwo,2);  
  34.             Console.WriteLine("Action");  
  35.             ProcessAndDisplayNumberAction(AddTwoAction,3);  
  36.             Console.Read();  
  37.         }  
  38.     }  
  39. }  

历史上的今天:

本文地址:https://www.lisen.me/csharp-delegate-action-func.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情