c# - 使用 CallerMemberName 和 MethodImplOptions.NoInlined - 有必要吗?

标签 c# attributes .net-4.5

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

我打算使用 [ 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/

相关文章:

c# - 返回已完成任务的最佳方法是什么?

c# - System.Net.WebRequest 支持哪些版本的 SSL/TLS?

c# - 以正确的方式做干燥的事情

c# - C# 中的简单游戏,仅包含 native 库

vue.js - Vue点击按钮时改变属性值的方法

android - 布局设计中缺少属性 - Android Studio

c# - 为什么 Visual Studio 的临时文件中仍引用旧项目名称

c# - 如何开发C#.net登录表单

c# - 用于集成测试的 ASPNet.Core 托管环境?

c# - [XmlType(AnonymousType = true)]