对于私有局部变量,使用下划线似乎是BCL的情况。我从来没有使用过它们,但却这样离开:
int count = 0;
this.Count++;
public int Count
...
public ClassName ( int count )
{
this.Count = count;
}
您对此有何看法?他们的方法有问题吗?
答案 0 :(得分:3)
这基本上是你必须自己决定的,只需找到或制作一个风格指南并遵循它。
就个人而言,我使用_作为该类私有字段的前缀。
答案 1 :(得分:2)
我们在这里使用的简单规则是:类的私有实现细节(包括变量名)完全取决于制作它的开发人员。公共/受保护的方法名称,属性,类名称等受最佳实践指南的约束。内部类型甚至可以被认为是其中的一部分,因为它们不是公开可见的。
当其他人需要使用您的图书馆时,它永远不会使用内部或私人类型,也不会看到您是否使用了下划线等。换句话说,这完全取决于您....
请记住,如果其他人必须稍后维护您的代码,那么它不应该过于模糊......
答案 2 :(得分:1)
不需要使用下划线来表示私有变量。这都是个人喜好。我只使用它们,所以我知道我使用局部变量而不是让Intellisense意外地使用我的公共属性。
答案 3 :(得分:1)
IMO,您永远不应该将私有成员变量命名为与属性,方法或其他任何内容相同的名称。应该清楚您正在使用哪个命名项目。这将使您的代码更易于理解和维护,并且可以自己或需要维护代码的其他开发人员减少编程错误。
此外,如果您想将代码移植到VB,那么该特定命名将无效。不知道你为什么要切换到VB,但它发生了。
答案 4 :(得分:1)
我使用下划线。它有助于我控制可变范围并减少命名冲突的可能性。
答案 5 :(得分:1)
对于不区分大小写的语言(如VB.Net),下划线更有意义。在像C#这样的语言中,它完全取决于个人偏好。
如果你厌倦了将this.
置于某些模棱两可的任务前面,那么下划线就是适合你的。如果没有它们,偶尔会偶然发生这样的事情:
private int that;
public void AssignThat(int that)
{
that = that; // assigns to method scope variable, not instance scope
}
FXCop或R#应该为你抓住这个,我相信你得到编译器警告,但它是可能的。
答案 6 :(得分:0)
使用前缀IntelliSense有一个实际的原因。 ATM它的制作方式是它没有真正区分当前实例变量和继承属性/变量。因此,对私有变量使用'_'可以更容易地在VS代码编辑器中的intellisense列表和函数/变量列表中找到变量。所以在某种程度上它是更广泛的匈牙利符号。