你好,如何在C#中实现"内联函数"?我不确定我理解这个概念。它们像匿名方法吗?就像lambda函数一样吗?
注意:答案几乎完全涉及到内联函数的能力,即“手动或编译器优化,将函数调用点替换为被调用者的主体”。如果你对匿名(又名lambda)函数感兴趣,请参见@jalf的答案或这是什么“Lambda”?。
你好,如何在C#中实现"内联函数"?我不确定我理解这个概念。它们像匿名方法吗?就像lambda函数一样吗?
注意:答案几乎完全涉及到内联函数的能力,即“手动或编译器优化,将函数调用点替换为被调用者的主体”。如果你对匿名(又名lambda)函数感兴趣,请参见@jalf的答案或这是什么“Lambda”?。
不,C#中没有这样的结构,但.NET JIT编译器可以决定在JIT时间内进行内联函数调用。但我实际上并不知道它是否真的执行这样的优化。
(我认为它应该会 :-))
如果您的程序集将被 ngen 编译,您可能需要查看 TargetedPatchingOptOut。这将帮助 ngen 决定是否内联方法。MSDN 参考
然而,它仍然只是一个声明性提示来进行优化,而不是一个命令。
Lambda表达式是内联函数!我认为,C#没有像inline这样的额外属性!