CallerMemberName如何实现?

我明白了它的作用-它允许我们将魔术字符串保留在我们的代码范围之外-但应该在nameof上使用它,并且更有效吗?

有什么区别/ CallerMemberName到底如何工作?

最佳答案

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

使用哪种取决于您。我会说:在可能的地方使用CallerMemberName,在必须的地方使用nameofCallerMemberNamenameof更加自动化,因此这就是为什么我更喜欢那个。

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

10-07 18:58