假设您覆盖operator*
和point3
的{{1}},然后覆盖float
和float
,您使用了这样的运算符:
point3
你能知道运算符方法是否最终会内联?
答案 0 :(得分:5)
不,你无法确定。特别是,因为它是在JIT时完成的,它将取决于CLR的版本 - 我相信64位CLR也与32位的内核不同。它还取决于是否启用了优化(例如,您是否正在调试等)。
您可以阻止使用MethodImplAttribute进行内联,但这无济于事......
答案 1 :(得分:2)
据我所知,由于JIT负责内联,因此无法确定。
答案 2 :(得分:2)
无法知道某个特定方法是否内联。 C#本身不会内联方法调用。只有JITer会这样做。虽然某些操作可能会被内联,但JITer不做任何保证。