2018-05-13

C# 從 Delegate 到 Lambda

/* 定義一個 delegate */
public delegate string MyDel(int id);


/* 宣告一個 Method */
public static string MethodA(int id)
{
    return " { " + id + " } ";
}


/* 將 MethodA 指派給一個 MyDel */
MyDel fu = MethodA;

/* 接著就可以這樣呼叫 delegate */
string result = fu(22);
System.Console.WriteLine(result);



/* 用 delegate 關鍵字建立 MyDel */
MyDel fu = delegate(int id)
{
    return " { " + id + " } ";
};



/* 用 Lambda 語法建立 MyDel */
MyDel fu = (int id) => {
    return " { " + id + " } ";
};



/* 因為 MyDel 已經定義參數為 int 了,所以可以省略 int */
MyDel fu = (id) => {
    return " { " + id + " } ";
};



/* 因為是單參數,所以可以省略小刮號 */
MyDel fu = id => {
    return " { " + id + " } ";
};



/* 接著是單純的 return,所以可以省略大刮號跟 return */
MyDel fu = id => " { " + id + " } ";

 


Ref:
匿名函式 (C# 程式設計手冊)
使用委派 (C# 程式設計手冊)

0 回應: