如何解决命名约定 - C++ 和 C# 变量中的下划线?

下划线只是一个约定;而已。因此,它的使用对每个人来说总是有些不同。以下是我对所讨论的两种语言的理解方式:

在 C++ 中,下划线通常表示私有成员变量。

在 C#
中,我通常看到它仅在为公共属性定义底层私有成员变量时使用。其他私有成员变量不会有下划线。但是,随着自动属性的出现,这种用法在很大程度上已经被淘汰了。

前:

private string _name;
public string Name
{
    get { return this._name; }
    set { this._name = value; }
}

后:

public string Name { get; set; }

解决方法

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