使用 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
提供的功能。
快速背景: 尝试创建一个方法,该方法将 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
提供的功能。