作为this question about prefixes的后续行为,我同意线程上的大多数人认为前缀不好。但是,如果你使用吸气剂和制定者怎么办?然后,您需要将可公开访问的getter名称与私有存储的变量区分开来。我通常只使用下划线,但是有更好的方法吗?
答案 0 :(得分:6)
这是一个完全主观的问题。没有“更好”的方式。
一种方法是:
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; }
也不是正确的答案。每个都有风格优点和缺点。选择你最喜欢的那个并一致地应用它。
答案 1 :(得分:6)
我喜欢在字段前加上下划线,正如其他人提到的那样。
private int _x;
我认为这超出了个人的偏好(正如David Arno在这篇帖子中所说)。我认为这样做有一些真正的客观原因:
(这些约定适用于Java,但其他语言也存在类似的约定)
这些东西看起来很小,但是当我编码时,它们的流行肯定会让我的生活更轻松。
答案 2 :(得分:3)
在java中,python中有this.foo,self.foo和其他语言有类似的东西,所以当我已经可以使用语言结构时,我不认为需要以特殊的方式命名。在相同的上下文中,优秀的IDE和编辑器可以理解成员变量并为它们提供一个特殊的突出显示,因此您可以使用特殊名称来真正看到它。
答案 3 :(得分:1)
在区分大小写的语言中我只使用:
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
答案 4 :(得分:1)
有很多不同的方法可以做到这一点,因为有程序员这样做,但一些比较流行的方式包括(对于属性Foo
):
答案 5 :(得分:1)
我喜欢写“this.x = x”。这对我来说非常清楚。此外,在使用Eclipse时,您可以通过这种方式自动生成getter / setter。