【发布时间】:2010-09-15 05:10:09
【问题描述】:
作为this question about prefixes 的后续行动,我同意线程上大多数人的观点,即前缀不好。但是如果你使用 getter 和 setter 呢?然后,您需要将可公开访问的 getter 名称与私有存储的变量区分开来。我通常只使用下划线,但有更好的方法吗?
【问题讨论】:
作为this question about prefixes 的后续行动,我同意线程上大多数人的观点,即前缀不好。但是如果你使用 getter 和 setter 呢?然后,您需要将可公开访问的 getter 名称与私有存储的变量区分开来。我通常只使用下划线,但有更好的方法吗?
【问题讨论】:
这是一个完全主观的问题。没有“更好”的方法。
一种方法是:
private int _x;
public get x():int { return _x; }
public set x(int val):void { _x = val; }
另一个是:
private int x;
public get X():int { return x; }
public set X(int val):void { x = val; }
两者都不是正确答案。每个都有风格的优点和缺点。选择您最喜欢的一个并始终如一地应用它。
【讨论】:
正如其他人所提到的,我喜欢在字段前加上下划线。
private int _x;
我认为这超出了直接的个人喜好(正如 David Arno 在此线程中所说)。我认为这样做有一些真正的客观原因:
(这些约定适用于 Java,但其他语言也有类似的约定)
这些东西看起来很小,但它们的普遍存在确实让我在编码时的生活更轻松。
【讨论】:
this,这样我就不必使用命名约定。 :)
在 java 中有 this.foo 在 python 中有 self.foo 和其他语言有类似的东西,所以当我已经可以使用语言结构时,我认为不需要以特殊方式命名某些东西。在相同的上下文中,好的 IDE 和编辑器理解成员变量并给它们一个特殊的突出显示,因此您可以真正看到它而无需使用特殊名称。
【讨论】:
我只是使用区分大小写的语言:
private int myValue;
public int MyValue
{
get { return myValue; }
}
否则我会使用下划线
Private _myValue As Integer
Public ReadOnly Property MyValue As Integer
Get
Return _myValue
End Get
End Property
【讨论】:
执行此操作的方法几乎与执行此操作的程序员一样多,但一些更流行的方法包括(对于属性Foo):
【讨论】:
我喜欢写“this.x = x”。我很清楚。另外,在使用 Eclipse 时,您可以通过这种方式让它自动生成您的 getter/setter。
【讨论】: