3
我需要在對象的生命週期中更改一些基本計算。我可以在現有方法中發射CIL嗎?
我知道如何創建一個動態方法,並通過delegate.Invoke
來調用它;然而,它是靜態方法調用的兩倍。
是否可以在現有方法中發射CIL?
說一個方法調用另一個和所述另一可(一次一個)具有不同的體:
public void Worker()
{
while(true)
{
int a = queueA.Dequeue();
int b = queueB.Dequeue();
int c = Calculate(a,b);
}
}
int Calculate(int a, int b)
{
// here goes dynamic code.
// could be return a - b;
// could be return b - a;
}
請注意,該示例中的計算邏輯被大大簡化。
多態性不適合你嗎? – leppie