C#中的内联函数是什么?

303

13
终于有可能了 - 看看我的回答。 - konrad.kruczynski
1
对于好奇的人,[可以看看这个VS扩展](https://marketplace.visualstudio.com/items?itemName=StephanZehetner.InliningAnalyzer)。 - TripleAccretion
13个回答

0

不,C#中没有这样的结构,但.NET JIT编译器可以决定在JIT时间内进行内联函数调用。但我实际上并不知道它是否真的执行这样的优化。
(我认为它应该会 :-))


0

如果您的程序集将被 ngen 编译,您可能需要查看 TargetedPatchingOptOut。这将帮助 ngen 决定是否内联方法。MSDN 参考

然而,它仍然只是一个声明性提示来进行优化,而不是一个命令。


而且JIT会更好地知道是否内联。显然,如果JIT没有优化调用点,那么我为什么要担心只调用几次的函数的最小开销呢? - Voo

-7

Lambda表达式是内联函数!我认为,C#没有像inline这样的额外属性!


9
我没有给你的回答投下反对票,但是在发布随机答案之前,请仔细阅读问题并确保你理解了它们。http://en.wikipedia.org/wiki/Inline_function - Camilo Martin
2
这个答案并没有被夸大,只是OP没有明确'函数内联'和'lambda函数'之间的区别,不幸的是MSDN将lambda称为"inline statements""inline code"。然而,根据Konrad的回答,有一个属性可以提示编译器内联方法。 - StuartLC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接