在类字段中看到_var
变量名是很常见的。下划线是什么意思?所有这些特殊的命名约定都有一个参考吗?
发布于 2010-06-29 06:29:54
下划线只是一个约定;仅此而已。因此,它的用法对于每个人来说总是有所不同的。下面是我对这两种语言的理解:
在C++中,下划线通常表示私有成员变量。
在C#中,我通常只在为公共属性定义底层私有成员变量时使用它。其他私有成员变量不会有下划线。然而,随着自动属性的出现,这种使用在很大程度上已经被淘汰了。
之前:
private string _name;
public string Name
{
get { return this._name; }
set { this._name = value; }
}
之后:
public string Name { get; set; }
发布于 2010-06-29 10:06:34
_var没有任何意义,其目的只是为了更容易地区分变量是私有成员变量。
在C++中,使用_var约定是不好的,因为在标识符前面使用下划线是有规则的。_var保留为全局标识符,而_Var (下划线+大写字母)随时保留。这就是为什么在C++中,您会看到人们转而使用var_约定。
发布于 2010-06-29 07:08:42
第一个评论者(R Samuel Klatchko)提到:What are the rules about using an underscore in a C++ identifier?回答了关于C++中下划线的问题。一般来说,您不应该使用前导下划线,因为它是为编译器的实现者保留的。您在_var
中看到的代码可能是遗留代码,也可能是由使用旧命名系统的人编写的代码,旧的命名系统不会皱眉前导下划线。
正如其他答案所述,它曾在C++中用来标识类成员变量。但是,就装饰符或语法而言,它没有特殊的含义。所以如果你想使用它,它会被编译。
我将把C#的讨论留给其他人来讨论。
https://stackoverflow.com/questions/3136594
复制相似问题