不知您是否可以從現有委託中創建和修改表達式樹。將委託轉換爲表達式樹
有點像
public void Foo() {
Console.WriteLine(1000);
}
....
Expression exp = Foo.GetExpression();
//Now do something what changes 1000 to 2000...
所以我想反向工程媒體鏈接excisting方法。
我的問題是,我有一個結構是這樣的:
var acts = new Action[20];
for (int i = 0; i != 20; i++)
acts[i] =() => { Console.WriteLine(i); };
並順便C#工程的所有行爲做同樣的(打印20)。但我想這是
acts[5]()
打印5個
acts[11]()
打印11等。
所以我需要計算20個不同的代表,我不知道什麼是「好」的方法來做到這一點。當然,我可以這樣寫:
acts[0] =() => Console.WriteLine(0);
acts[1] =() => Console.WriteLine(1);
acts[2] =() => Console.WriteLine(2);
acts[3] =() => Console.WriteLine(3);
....
但是,這不是我的eyey一個好辦法...
這將有相同的問題。 –
謝謝你們兩位!這就是我想知道的:) – Rico