已经阅读了MSDN命名指南并且找不到明确的答案,除此之外,您应该尽量避免使用下划线.假设我有以下内容:
public class Employee { private string m_name; //to store property value called Name public string Name { get { return m_name; } set { m_name = value; } } public void ConvertNameToUpper() { //by convention should you use this return m_name.ToUpper(); //or this return Name.ToUpper(); } }
上面m_name的正确命名约定是什么?例如,在代码我继承我常见:
m_name
_名称
名称
myName或其他一些随机标识符
哪一个(或另一个)最常被接受?
作为后续,在类的方法中,您是指内部(私有)标识符还是公共属性访问器?
我认为,无论你使用什么命名约定,最重要的是你保持一致.我的意思是,如果你选择像_name一样命名私有成员,那么总是这样做,而不是一次使用_name,另一次是m_name.我个人使用下划线前缀约定.(其中一个原因是因为我使用NHibernate,而NHibernate有一个'field.camelcase-underscore'访问策略.
对于你的另一个问题:这取决于你想做什么.
您的属性是否包含额外的逻辑,并且您是否希望在引用它时执行此逻辑?然后使用该属性.你不想执行逻辑?使用该字段.Eric Lippert 在他的博客上写了一篇关于此事的帖子.
对于你的后续行动:这一切都取决于具体情况.如果您的属性包含一些额外的逻辑,并且您不想在从类中访问时执行该附加逻辑,那么请使用支持字段...
首先 - 对于简单的get/set情况,我建议您使用自动实现的属性.如果这样做,编译器将生成基础变量,并且您只引用属性本身.
除此之外,我建议你选择上面的一个或类似的东西,坚持下去.我工作的公司使用vName,其中"v"表示这是属性的值.