オブジェクトの存続期間中にいくつかの基本的な計算を変更する必要があります。
動的メソッドを作成し、それを呼び出す方法を知っていますdelegate.Invoke
。ただし、静的メソッド呼び出しの2倍のコストがかかります。
既存の方法の中でCILを放出することは可能ですか?
あるメソッドが別のメソッドを呼び出し、別のメソッドが(一度に1つずつ)異なる本体を持つことができるとしましょう。
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;
}
この例の計算ロジックは大幅に簡略化されていることに注意してください。