以_开头的变量名是什么意思?

Niy*_*yaz 30 c# asp.net variables syntax naming-conventions

在使用C#编写我的第一个asp.net MVC应用程序时,我看到有些变量的名称以下划线字符(_)开头.

这是什么意思?这有什么特别的意义吗?

Jon*_*eet 55

没有语言定义的含义 - 它只是一些人用来区分实例变量和局部变量的约定.其他变体包括m_foo(和s_foo或g_foo或静态变量)或mFoo; 或者有些人喜欢为局部变量(和参数)添加前缀而不是实例变量.

就个人而言,我不使用这样的前缀,但它是一种风格选择.只要在同一个项目上工作的每个人都是一致的,通常都不是问题.虽然我已经看到了一些可怕的不一致代码......

  • 局部变量和实例变量有什么区别?实例变量:绑定到对象本身的变量(属性、类的属性)。局部变量:通常在方法或构造函数中使用的变量。更多信息:https://www.google.com/search?q=difference+ Between+local+and+instance+variables (2认同)

Ben*_*ins 25

通常,这意味着私有成员字段.

  • 更一般地说,对于非公共实例字段(也包括受保护和内部字段). (6认同)

Rak*_*was 9

变量名前的下划线_val只不过是一种约定。在 C# 中,它在为公共属性定义私有成员变量时使用。

我要补充一下@Steven Robbins所说的:

private string _val;
public string Values
{
    get { return _val;}
    set {_val = value;}
}
Run Code Online (Sandbox Code Playgroud)


Ste*_*ins 5

很多人将它们用作属性私有变量(实际存储公共属性值的变量)。