2013-07-14 85 views
0

我想創建一個委託數組,並想知道如果我可以做到這一點,而無需定義類中的所有委託方法,但在方法,然後只存儲在數組中,並傳出。下面是我的語法嘗試,但它不起作用。有沒有辦法做到這一點,或者是我需要在類中存儲它們的類中常規定義方法的情況?是否可以在委託數組的行方法聲明中做?

delegate void myDelegateType(); 
myDelegateType[] myDelegateArray = new myDelegateType[3]; 
myDelegateArray[0] = new myDelegateType(void myMethod1(){int i = 0;}); 

回答

2

C#2.0中引入anonymous methods

myDelegateArray[0] = new myDelegateType(delegate(){int i = 0;}); 

C#3.0中引入lambda expressions

myDelegateArray[0] = new myDelegateType(() => {int i = 0;}); 

有兩間only minuscule difference,但lambda表達式是通常是首選的,因爲它們更容易閱讀&寫入。

1

它不稱爲內聯(聽起來像C#inline)而不是其稱爲Lambda表達式。 這裏是什麼樣子:

delegate void myDelegateType(); 
static void Main(string[] args) 
{ 
    myDelegateType[] myDelegateArray = new myDelegateType[3]; 
    myDelegateArray[0] =() => {int i = 0;}; 
}