none
C#中变量前面加 _ 是什么意思 RRS feed

答案

  • 你好!
         一种命名方式而已,当然_abc和abc是两个不同的变量!
         一些.NET程序员喜欢在后端字段(在属性中需要访问的字段)前使用“_”来防止命名冲突,在.NET下不推荐这种命名约定,可以使用首字母是否大写来防止命名冲突:
    public class Date
    {
        private int month = 7;  // Backing store
    
        public int Month
        {
            get
            {
                return month;
            }
            set
            {
                if ((value > 0) && (value < 13))
                {
                    month = value;
                }
            }
        }
    }
    

    周雪峰
    2009年11月13日 0:21
    版主
  • 呵呵 我比较喜欢m_PrivateMememberName;的命名 这样还可以直接Ctrl+R,E生成属性名为PrivateMemberName...


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年11月13日 1:03
    版主

全部回复

  • 没有区别 
    在细节区别方面是可读性是否更好
    2009年11月12日 13:46
  • 你好!
         一种命名方式而已,当然_abc和abc是两个不同的变量!
         一些.NET程序员喜欢在后端字段(在属性中需要访问的字段)前使用“_”来防止命名冲突,在.NET下不推荐这种命名约定,可以使用首字母是否大写来防止命名冲突:
    public class Date
    {
        private int month = 7;  // Backing store
    
        public int Month
        {
            get
            {
                return month;
            }
            set
            {
                if ((value > 0) && (value < 13))
                {
                    month = value;
                }
            }
        }
    }
    

    周雪峰
    2009年11月13日 0:21
    版主
  • 呵呵 我比较喜欢m_PrivateMememberName;的命名 这样还可以直接Ctrl+R,E生成属性名为PrivateMemberName...


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年11月13日 1:03
    版主
  • 你不写m_也可以用这个方法来生成属性啊!
    匈牙利标记法在.NET中不是很流行啊!这个m比较容易造成误解,因为字段和属性也都是成员啊!
    周雪峰
    2009年11月13日 3:32
    版主
  • 你不写m_也可以用这个方法来生成属性啊!
    匈牙利标记法在.NET中不是很流行啊!这个m比较容易造成误解,因为字段和属性也都是成员啊!
    周雪峰

    不加的话在intelligence 方面不方便 因为打个m和_的时间是不同的
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年11月18日 5:27
    版主
  • 恩!明白你的意思了啊!
    我的意思是m和_都不写!
    周雪峰
    2009年11月18日 9:04
    版主
  • 看程序员的习惯了 如果是vb的话 经常用下划线分辨变量

    2009年11月18日 9:42