0

operator*forpoint3floatforをオーバーライドし、次のように演算子を使用したfloatとします。point3

point3 * float

演算子メソッドが最終的にインライン化されるかどうかを知ることができますか?

4

3 に答える 3

5

いいえ、はっきりとは言えません。特に、これは JIT 時に行われるため、CLR のバージョンに依存します。また、64 ビット CLR は 32 ビット CLR とはインライン展開が異なると思います。また、最適化が有効になっているかどうかによっても異なります (たとえば、デバッグ中かどうかなど)。

MethodImplAttributeでインライン化を防ぐことができますが、それはあまり役に立ちません...

于 2009-02-11T19:20:06.173 に答える
2

私の知る限り、JIT がインライン展開を担当しているため、確実に知る方法はありません。

于 2009-02-11T19:19:38.593 に答える
2

特定のメソッドがインライン化されるかどうかを知る方法はありません。C# 自体がメソッド呼び出しをインライン化することはありません。これを行うのは JITer だけです。インライン化される可能性が高い特定の操作がありますが、JITer は保証しません。

于 2009-02-11T19:22:09.523 に答える