何时为成员添加前缀“this”(C#)有哪些好的规则?如果我正在访问成员字段、属性或方法,我永远不确定什么时候应该在前面加上“this”。我不是在询问需要它的情况,例如当局部变量具有相同的名称时。我说的是完全相同的情况。哪个更具可读性?是否有任何我应该遵循的标准、最佳实践或经验法则?它应该在整个类或整个代码库中保持一致吗?我建议使用Microsoft的指导方针,由StyleCop验证:http://blogs.msdn.com/sourceanalysis/一般规则是,在成员之前添加“this”。当它们在类中定义时,除非它们是静态的,在这种情况下你不能。这是直接来自StyleCop的规则:SA1101:对{methodorpropertyname}的调用必须以“this”开头。前缀以指示该项目是该类的成员。在这个问题上我不同意StyleCop,我什至不确定StyleCop的意见是否应该被解释为微软的官方指南。它是微软使用的内部工具,但并不是所有团队都使用它,也不是所有团队都使用所有规则。没有必要在任何地方添加它,通常只会增加混乱。它不会提高性能,而且我认为将其添加到代码中根本不会提高可读性。您可能会听到这样的争论,即它定义了变量在哪里更清楚,但我认为如果您的类/方法太长太复杂以至于很难弄清楚在哪里声明了某些东西,那么您可能应该重构它。如果你使用单一职责规则并且有短函数,变量是成员、函数参数还是局部变量应该是显而易见的。正如您所指出的,有时这是必要的。例如,在构造函数中,如果要设置一个与参数同名的私有成员。公共类Foo{私人酒吧酒吧;publicFoo(Barbar){this.bar=bar;我会说如果可能的话避免它,它节省了一些(实际上很多)打字。我更依赖VisualStudio来帮助我找到属于我的位置(永远不要忘记F12)。我不使用记事本来阅读我的cs文件:P如果您遵循Microsoft的StyleCop,您应该始终使用带有此关键字的前缀类成员。SA1101:PrefixLocalCallsWithThis类型名称:PrefixLocalCallsWithThisCheckId:SA1101类别:可读性规则这是关于同一主题的类似StackOverflow问题。我通常使用它来访问当前对象的参数。鉴于实例变量“m_”的命名约定,这使得可以一眼看出语句影响的内容:m_Height+=10;//一个实例变量height+=10;//一个局部变量this.Height+=10;//一个属性在我的代码中,我只使用这个。当属性是基类的成员,而不是我当前所在的类时。当然,不使用“this”是另一个流行的选择,因为它是不必要的代码。我们的工作编码标准规定,成员变量不应以“m”或“_”或大多数人使用的任何其他形式为前缀。我实际上发现自己一直在使用this.memberVariable。我更喜欢清晰度而不是额外的打字。正如其他答案中提到的,当引用与成员变量同名的参数时,这是必要的。如果您使用的是VisualStudio和Intellisense。当你键入它时,你会得到一个列表,其中只列出了类级变量方法等。省略所有其他可能的项目。以上是C#学习教程:Whataresomegoodrulesforwhentoprefixmemberswith'this'(C#)?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
