1. 程式人生 > >關於C#中Lambda和'函式指標'的簡單認識

關於C#中Lambda和'函式指標'的簡單認識

char (*Body)(char  a,char  a);
delegate char vest (char a, char b);  

C#雖然對deleagte關鍵字做了大量的操作但是本質是改不了的(本人是這麼理解的),它就是個記錄函式地址的工具C#為了更方便語言的使用於是產生了

public delegate void Action();  

此委託無返回值


public delegate TResult Func<out TResult>();

//此委託泛型引數Tresult為最後一位且決定返回值型別,其他泛型引數為函式引數型別 如 Func<int,char,string> returnString 那麼此時string在泛型引數的最後一個位置

//那麼它就決定了返回值的型別 而int,char則為函式引數型別<//關於lambda表示式的簡單認識 
Action<string> temp = par => Console.WriteLine(par); 
// lambda格式: 引數 => 程式碼塊 //注意這裡後面程式碼塊不可以存在返回值 且操作的函式引數要與定義的函式匹配 
Func<int, string> s = par => 10+ par + ""; 
//這裡使用func便需要返回值 
Func<List<int>, int, string> ss = (par1, par2) => { return par1.Count + par2 + ""; }; temp(s(10)+" "+ss(new List<int>(),11)); Console.ReadLine();