快速背景: 尝试创建一个方法,该方法将根据调用它的方法返回预定义的字符串。 (有点被掩盖,但已经足够了)。
我打算使用 [ CallerMemberName
] 属性,但我的问题是:
=> 我是否需要将 MethodImplOptions.NoInlined
与此属性一起使用,还是由编译器隐式应用?
有很多关于 CallerMemberName
属性的示例,以及使用 MethodImplOptions.NoInlined
方法属性的 .net4.5 之前的框架的旧版本,但没有明确说明您不需要一起使用它们吗?
预先感谢您的阅读!
最佳答案
没有必要,因为 CallerMemberName由编译器在编译时解析:
Caller Info values are emitted as literals into the Intermediate Language (IL) at compile time.
内联不是由 C# 编译器完成,而是由 JIT 在将 IL 代码编译为程序集时完成,因此内联不会影响 CallerMemberName
提供的功能。
关于c# - 使用 CallerMemberName 和 MethodImplOptions.NoInlined - 有必要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47138197/