c# - 我应该提供一个带有 nameof 成员名称的方法,还是应该依赖 CallerMemberName 来为我做这件事?

标签 c# reflection nameof callermembername

如何CallerMemberName实现了吗?

我明白它的作用 - 它允许我们在代码中保留魔法字符串 - 但它应该用于 nameof 吗?什么更高效?

有什么区别/CallerMemberName 究竟是如何工作的?

最佳答案

CallerMemberName 是一个编译时技巧,用于将当前成员的名称放在对另一个方法的调用中。 nameof 也是一个编译时技巧,可以做类似的事情:它采用成员的字符串表示形式。

使用哪个取决于您。我会说:在可能的地方使用 CallerMemberName,在必须的地方使用 nameofCallerMemberNamenameof 更自动化,所以这就是我更喜欢那个的原因。

两者具有相同的性能含义:仅在编译时需要一些额外的时间来评估代码,但这可以忽略不计。

关于c# - 我应该提供一个带有 nameof 成员名称的方法,还是应该依赖 CallerMemberName 来为我做这件事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37942770/

相关文章:

c# - 是否可以在 switch 语句中使用 nameof 表达式?

c# - 获取参数的调用变量名

c# - 表达式与 nameof

C# 从 Internet Explorer 获取代理设置

c# - 在镜像模式 Windows 7 中以编程方式更改屏幕方向

c# - 如何在Windows窗体应用程序中使窗体最大化到任何计算机屏幕?

c# - 检查子重复项

c# - 如何获取数组字段的 FieldInfo?

c# - .NET PropertyInfos 的平等

c# - 通过 asp.net 中的路径获取属性的值