在无关的情况下使用this
关键字的惯例是什么?例如,请考虑以下类声明:
class Test {
private int privateVariable;
public Test(int constructorVariable) {
this.privateVariable = constructorVariable;
}
}
构造函数中this
之前的privateVariable
是无关紧要的,但它使代码更容易理解(在我看来)。所以你这样使用它吗?
答案 0 :(得分:1)
在大多数情况下,这是个人/团队偏好的问题。在某些情况下,它具有结构意义。例如,考虑在构造函数中为final
类成员提供值的Java约定:
private final int someValue;
public SomeClass(int someValue) {
this.someValue = someValue;
}
在这种情况下,需要this
关键字来明确定义在同一范围内引用两个同名变量中的哪一个。鉴于这种方法,团队通常倾向于使用this
明确引用值,而不是使用名称,例如:
private final int _someValue;
public SomeClass(int someValue) {
_someValue = someValue;
}
(我不是100%肯定,如果Java会抱怨这一点,但C#除了final
关键字之外不会这样做。)这实际上是做同样的事情,但是它预示着一个潜在丑陋的下划线到一个其他地方没用的值。相反,将下划线(或任何其他此类不必要的装饰)添加到方法参数中会在智能感知和生成的文档中进行广告,这也是不可取的。
因此,虽然归结为偏好,但通常情况下,偏好的基础是善意保持名称一致和有意义的愿望。
答案 1 :(得分:0)
取决于您(或您的公司)正在使用的样式指南。如果你没有,this document是一个好的开始,也支持你的建议。
其他样式指针 - 尤其是从其他语言派生时,例如c ++ - 更喜欢使用_或m_
为私有成员添加前缀private int _privateVariable;
private int m_privateVariable;
或者甚至可以使用匈牙利语表示法(请参阅this article了解dos和don&#ts; ts)
private string m_strPrivateVariable;
如果您负责做出决定,请阅读一些文章,选择最适合您需求和偏好的文章。但在做出决定后,坚持下去并加以执行。