2
A
回答
7
C#语言不会内联,但.NET CLR JIT编译器可以。
虚拟化可能在密封类中是内联的,但我不确定非密封类。我会假设没有。
JIT在执行代码之前进行优化,当函数被首次调用时。因为在JIT开始工作之前,您没有任何代码可以执行。 :P JIT只在第一次调用函数时发生,而不是在每次调用函数时发生。
还要注意内联只能在程序集(DLL)中完成。 JIT编译器不会复制另一个程序集中的代码以将其内联到此程序集的代码中。
7
C#不支持明确的内联。 JIT编译器可以在优化的同时在舞台后面进行一些内联。
4
C#编译器本身不会执行内联(您可以通过在Reflector中打开程序集来进行验证)。 CLR的JIT编译器确实内联了,关于这个主题,这里是one blog post(还有更多)。
请注意,一般而言,.NET编译器无法跨越DLL边界进行内联,因为在编译依赖于DLL的代码后,DLL可能会更改。因此在运行时进行内联是有意义的。
相关问题
- 1. 运行内联错误:: C
- 2. 内联C#代码应该只在点击时运行ASP.NET
- 3. 在运行时C结构内省
- 4. 在Mediawiki上运行SQL内联查询
- 5. 替代在C#中内联?
- 6. 在C/C++中使用内联汇编
- 7. c#在运行时打开文件关联
- 8. 内联重载运算符C++
- 9. JPA在运行时级联选项
- 10. Java Swing中级联运行时错误
- 11. C++程序在运行时
- 12. 在运行时确定(C#)
- 13. 使用C#在运行时
- 14. 在Objective-C中导入运行时库
- 15. “内联C” -question
- 16. C#在运行时添加的app.config设置在内存
- 17. 从内部运行csh c
- 18. c中的内联函数
- 19. C++中的内联函数
- 20. C++中的内联函数
- 21. C中的内联扩展#
- 22. C#通行证泛型在运行时
- 23. 从内存中运行pyc数据C
- 24. 在C++中的内联throw()方法
- 25. JavaScript内联函数就像在C++中
- 26. 函数在C++中的内联要求
- 27. 为什么我在c中使用堆内存时出现运行时错误?
- 28. Java,C++,Python和ObjC的联机编译器/运行时?
- 29. C#Winform DataGridView内联添加新行
- 30. 在设计时在winforms文本框中进行内联编辑