在实例变量和方法之前写“this.”是好还是坏风格?

2022-09-01 07:05:01

我在C++和Java中令人讨厌的(?)编程习惯之一是总是在调用或访问成员之前加上.例如:。thisthis.process(this.event)

我的一些学生对此发表了评论,我想知道我是否在教坏习惯。

我的理由是:

  1. 使代码更具可读性 — 更易于将字段与局部变量区分开来。
  2. 使区分标准调用和静态调用变得更加容易(尤其是在 Java 中)
  3. 使我记得这个调用(除非目标是最终的)可能最终在不同的目标上,例如在子类中的覆盖版本中。

显然,这对编译的程序没有任何影响,它只是可读性。那么,我是让它或多或少地可读呢?

注意:我把它变成了CW,因为真的没有正确的答案。


答案 1

我认为它的可读性较差,尤其是在字段突出显示与局部变量不同的环境中。我唯一想看到“this”的时候是当它需要的时候,例如:

this.fieldName = fieldName

分配字段时。

也就是说,如果你出于某种原因需要某种方法来区分字段,我更喜欢“this.fieldName”而不是其他约定,比如“m_fieldName”或“_fieldName”


答案 2

这是一件非常主观的事情。Microsoft StyleCop 有一个规则,要求 this. 限定符(尽管它与 C# 相关)。有些人使用下划线,有些人使用奇怪的匈牙利符号。我个人用这个来限定成员即使没有明确要求它以避免混淆,因为在某些情况下,它可以使一个人的代码更具可读性。

您可能还想查看此问题:
您对成员变量使用哪种前缀?