1

readonlyAction と Method は両方とも 1 回定義する必要がありますが、variableAction に何度も割り当てると仮定します。

Action variableAction;
readonly Action readonlyAction;
void Method() {}

タスク、読み取り専用デリゲート、またはメソッドに適しているのはどれですか? いずれかのケースでいくつかの最適化が行われている可能性があると考えていますが、考慮すべきセマンティックの問題もあるでしょうか?

variableAction = readonlyAction;
variableAction = Method;
4

1 に答える 1

0

メソッドまたはアクション (プリコンパイル) のいずれかを設定している場合 (そうでない場合は、おそらくこれを要求することはないでしょう)、パフォーマンスに関して大きな違いはないと思います。ただし、正確な答えが必要な場合は、IL を確認する必要があります。とにかく、コンパイラは静的アクションのメソッドまたはインラインを作成するだけかもしれません。そうは言っても、私はその時点で何よりも読みやすさに焦点を当てます. 新しい開発者がコードを読み取ろうとしていると想像してみてください。一方の方法で読みにくくなる場合は、別の方法を使用してください....私はおそらく個人的にメソッドに傾倒するでしょう. アクションは、おそらく以下のシナリオに残す必要があります。

それ以外の場合、 はAction構築時に渡されるものである可能性があるため、Actionとにかく実行時まで実装がわからないため、 を使用する必要があります。Methodしかし、とにかく、このシナリオでは を使用することは不可能であるため、それがあなたが尋ねている理由だとは思いません。

于 2013-02-27T14:38:19.543 に答える