使用 CallerMemberName 和 MethodImplOptions.NoInlining - 有必要吗?

using CallerMemberName and MethodImplOptions.NoInlining - Is it necessary?

快速背景: 尝试创建一个方法,该方法将 return 一个基于调用它的方法的预定义字符串。 (有点被掩盖了,但已经足够了)。

我打算使用 [CallerMemberName] 属性,但我的问题是:

=> 我需要将 MethodImplOptions.NoInlining 与此属性一起使用,还是由编译器隐式应用?

CallerMemberName 属性和 .net4.5 之前框架的旧版本都有很多示例,它们使用 MethodImplOptions.NoInlining 方法属性,但没有明确说明您不需要使用他们在一起?

在此先感谢您的阅读!

不需要,因为CallerMemberName编译器在编译时解析:

Caller Info values are emitted as literals into the Intermediate Language (IL) at compile time.

在将 IL 代码编译为汇编时,内联不是由 C# 编译器完成,而是由 JIT 完成,因此内联不会影响 CallerMemberName 提供的功能。