CallerMemberName如何实现?
我明白了它的作用-它允许我们将魔术字符串保留在我们的代码范围之外-但应该在nameof
上使用它,并且更有效吗?
有什么区别/ CallerMemberName到底如何工作?
最佳答案
CallerMemberName
是一个编译时技巧,用于将当前成员的名称放在对另一个方法的调用中。 nameof
也是执行类似操作的编译时技巧:它采用成员的字符串表示形式。
使用哪种取决于您。我会说:在可能的地方使用CallerMemberName
,在必须的地方使用nameof
。 CallerMemberName
比nameof
更加自动化,因此这就是为什么我更喜欢那个。
两者具有相同的性能含义:仅在编译时需要花费一些额外的时间来评估代码,但这是可以忽略的。