匿名委託Lambda表達式

// 2種形式都是聲明委託的形式

// 2.0以前 C# 命名方法是聲明委託的唯一方法  C# 2.0 之後引入匿名方法

// C#3.0以及更高版本中 使用Lambda表達式 取代了匿名方法 作爲編寫內聯代碼的首選方式

// 匿名方法

delegate void Anonymity(int x);

Anonymity m_anonymity = delegate (int x) { Debug.Log("匿名函數" + x); };

// Lambda表達式 作用用於匿名函數一樣,僅僅是語法不同

delegate bool DeleLambda(int x, int y);

delegate int DeleLambda_A(int x);

delegate void DeleLambda_B();

delegate void DeleLambda_C();

private void Start()

{

m_anonymity(11);

// 1.拉姆達表達式

// <1> 括號中的2個或更多的參數 使用逗號分隔

DeleLambda m_deleLambda = (x, y) => x == y;

bool isEqual = m_deleLambda(3, 3);

Debug.Log(isEqual);

// <2> 如果Lambda 表達式僅有一個參數的時候 可以省略括號

DeleLambda_A m_deleLambda_A = y => y + 3;

int result = m_deleLambda_A(3);

Debug.Log(result);

// <3> 無參數的情況 使用空括號表示

DeleLambda_B m_deleLambda_b = () => SomeFunc();

m_deleLambda_b();

// 語句Lambda

DeleLambda_C m_deleLambda_c = () => { SomeFunc_B(45); };

m_deleLambda_c();

}

void SomeFunc() {

Debug.Log("DeleLambda_B");

}

void SomeFunc_B(int i) {

Debug.Log("i=" + i);

}

發佈了37 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章