沒有匿名方法的時候(c# 1.0)
addbutton.click += new eventhandler(addclick);
void addclick(object sender,eventargs e)
有了匿名方法之後(c# 2.0)
addbutton.click += delegate
c# 支援用於呼叫乙個或多個方法的委託 (delegate)。委託提供運算子和方法來新增或刪除目標方法,它也可以在整個 .net 框架中廣泛地用於事件、**、非同步呼叫、多執行緒等。
常規委託:
class someclass
void somemethod()
}可以用乙個匿名方法來定義和實現這個方法:
class someclass
;
del();
}
}
匿名方法當做引數傳入:
class someclass
);
}
void invokedelegate(somedelegate del)
}下面是乙個將匿名方法作為引數傳遞的具體而實用的示例,它在沒有顯式定義 threadstart 委託或執行緒方法的情況下啟動乙個新的執行緒:
public class myclass
public void lauchthread()
thread workerthread = new thread(delegate()
messagebox.show("hello");
workerthread.start();
帶引數的匿名方法:
class someclass
;
del("hello");
}
}一般的匿名方法:
class someclass
del(t);
}
}注意點:
1.如果匿名方法沒有引數,則可以在 delegate 關鍵字後面使用一對空括號:
class someclass
;
del();
}
}2.如果您將 delegate 關鍵字與後面的空括號一起忽略,則您將定義一種特殊的匿名方法,它可以指派給具有任何簽名的任何委託:class someclass
;
del("parameter is ignored");
}
}
c 匿名方法用途 C 匿名方法
我們討論了使用委託來引用具有與委託相同簽名的任何方法。換句話說,您可以使用該委託物件呼叫可由委託引用的方法。匿名方法提供了一種將 塊作為委託引數傳遞的技術。匿名方法是沒有名稱的方法,只是主體。您無需在匿名方法中指定返回型別 它是從方法體內的return語句推斷出來的。編寫匿名方法 匿名方法是通過建立...
c 匿名方法用途 C 匿名方法
c 語言 的 c 匿名方法 前面我們學習過,委託可用於引用任何與委託簽名相同的方法。換句話說,可以呼叫可以由委託使用該委託物件引用的方法。匿名方法提供了一種將 塊作為委託引數傳遞的技術。匿名方法是沒有名稱的方法,只有方法體。不需要在匿名方法中指定返回型別 它是從方法體中的return語句來推斷的。編...
C 匿名方法
1,匿名方法 c 為委託提供一種機制,可以為委託定義匿名方法,匿名方法沒有名稱,編譯器會定指定乙個名稱 匿名方法中不能使用跳轉語句跳轉到該匿名方法的外部,也不能跳轉到該方法的內部。也不能在匿名方法外部使用的ref和out引數 2,匿名方法的 拉姆達 表示式 方式定義 c 3.0之後匿名方法可以使用 ...