我能夠編譯代碼,其中包括這樣的:C#;在沒有單獨聲明方法的情況下創建新的代表?
OperationDelegate myOpDelegate;
static OperatorDefinition[] definitions ={
new OperatorDefinition("+",2,3,true, new OperationDelegate(OperationAdd)),
};
delegate double OperationDelegate(double[] args);
static double OperationAdd(double[] args)
{
return args[0] + args[1];
}
,但我覺得我的代碼看起來更清潔,如果我可以做更多的事情是這樣的:
OperationDelegate myOpDelegate;
static OperatorDefinition[] definitions ={new OperatorDefinition("+",2,3,true, new OperationDelegate({return args[0]+args[1]}))};
delegate double OperationDelegate(double[] args);
,因爲我想定義的一切關於每個OperatorDefinition在一個地方,而不是單獨定義函數。有沒有辦法在C#中做到這一點?
(約我的代碼的任何其他的批評是值得歡迎的,太)
嘗試lambda表達式...他們是整齊,乾淨,簡潔。 – explorer 2010-10-19 20:22:57