operator*
forpoint3
とfloat
forをオーバーライドし、次のように演算子を使用したfloat
とします。point3
point3 * float
演算子メソッドが最終的にインライン化されるかどうかを知ることができますか?
いいえ、はっきりとは言えません。特に、これは JIT 時に行われるため、CLR のバージョンに依存します。また、64 ビット CLR は 32 ビット CLR とはインライン展開が異なると思います。また、最適化が有効になっているかどうかによっても異なります (たとえば、デバッグ中かどうかなど)。
MethodImplAttributeでインライン化を防ぐことができますが、それはあまり役に立ちません...
私の知る限り、JIT がインライン展開を担当しているため、確実に知る方法はありません。
特定のメソッドがインライン化されるかどうかを知る方法はありません。C# 自体がメソッド呼び出しをインライン化することはありません。これを行うのは JITer だけです。インライン化される可能性が高い特定の操作がありますが、JITer は保証しません。