首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >命名约定-在C++和C#变量中使用下划线

命名约定-在C++和C#变量中使用下划线
EN

Stack Overflow用户
提问于 2010-06-29 06:26:26
回答 13查看 194K关注 0票数 168

在类字段中看到_var变量名是很常见的。下划线是什么意思?所有这些特殊的命名约定都有一个参考吗?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 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; }
票数 128
EN

Stack Overflow用户

发布于 2010-06-29 10:06:34

_var没有任何意义,其目的只是为了更容易地区分变量是私有成员变量。

在C++中,使用_var约定是不好的,因为在标识符前面使用下划线是有规则的。_var保留为全局标识符,而_Var (下划线+大写字母)随时保留。这就是为什么在C++中,您会看到人们转而使用var_约定。

票数 8
EN

Stack Overflow用户

发布于 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#的讨论留给其他人来讨论。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3136594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档