C# 是否启用内联:静态本地功能?

C# 是否启用内联:静态本地功能?,c#,throw,inlining,local-functions,C#,Throw,Inlining,Local Functions,NET的大部分代码库都包含抛出帮助程序,这些静态方法除了抛出某个异常外,没有其他用途。如果我没有弄错的话,这是因为直接抛出的方法从未内联(大概是为了产生足够的堆栈跟踪)。通过将throw语句移动到helper方法中,主要方法成为内联的候选方法 这是否也适用于静态局部函数?或者,它们是否也具有阻止内联的特性? 我到处都找不到这个。我的理论是,静态局部函数被编译成常规的静态方法,因此在内联时应该不会显示出不同的特性。不过,可以肯定的是。如果我们在跳转,它最好达到预期的效果。“它最好达到预期的效果”-

NET的大部分代码库都包含抛出帮助程序,这些静态方法除了抛出某个异常外,没有其他用途。如果我没有弄错的话,这是因为直接抛出的方法从未内联(大概是为了产生足够的堆栈跟踪)。通过将
throw
语句移动到helper方法中,主要方法成为内联的候选方法

这是否也适用于静态局部函数?或者,它们是否也具有阻止内联的特性?


我到处都找不到这个。我的理论是,静态局部函数被编译成常规的静态方法,因此在内联时应该不会显示出不同的特性。不过,可以肯定的是。如果我们在跳转,它最好达到预期的效果。

“它最好达到预期的效果”--解决这个问题的最好方法是确定你的方法是否在你想要的时候被JIT内联。毕竟,如果您已经有了一个分析器,那么您应该真正关心是否有东西正在内联。除非你真的需要,否则不要像使用投掷助手那样跳过篮筐