public class User
    {
        private string _name;
        private int _age;
        private string _job;
        public string Name
        {
            get
            {
                if (_name == "")
                {
                    return "还没起名呢";
                }
                return _name;
            }
            set
            {
                if (value == "猪")
                {
                    //不能起这个名
                    return;
                }
                _name = value;
            }
        }
 
在调用的时候就可以用上,比如:
 User u = new User();
      u.Name="猪";
        string name = u.Name;
Console.Write(name); 谁能帮我分析下?

解决方案 »

  1.   

    if (_name == null || _name== "")
    {
    return "还没起名呢";}
      

  2.   

    public string Name
      {
      get
      {
      return _name ?? "还没起名呢";
      }
      set
      {
        if (value != "猪")
          _name = value;
      }
    }
      

  3.   

    string.isNullOrEmpty
    3.0以上提供了自动属性
    public int Id { get; set; }
     _name = (value==""?"":"")
      

  4.   

    我用ide执行之后也是什么都没有显示,谁能帮我走下流程,我是这样走的:
    1:User u = new User() 创对象;
    2:u.Name = "猪";赋值;
    3:执行set,因为等于猪,所以,return;
    4:执行string name =u.Name; 执行get;
    5:_name 并没有进行赋值,所以为null,但是if并不符合,所以没有执行,_name为null;
    6:输出name,应该为猪吧,
    我分析到哪里出错了?
      

  5.   


    第六步为什么是猪?_name == null;去 get 很明显只会返回 null
      

  6.   

    意思是get的返回值就是当前类的返回值,可以这样理解吗?
    至于类里面是否增加了什么变量都不是很重要。满足类的执行就可以,最后get完成之后类得到返回值。
      

  7.   

    三楼的问题,分析结果是怎样出来的。  好理解下get和set的用法。
      

  8.   

    是在问我的吗?
    public string Name
      {
      get
      {
      //如果_name是null,或者是空值 則返回"还没起名呢",否則返回name.
      return String.IsNullOrEmpty(_name) ? "还没起名呢" :_name ;
      }
      set
      {
       //不等於豬,繼續賦值,否則不賦值.
      if ((value != "猪")
         _name = value;
      }
    }不太明白什麼地方需要分析啊?
      

  9.   

    c#在定义类时,通常要把类中声明的对象封装起来,使得外界不能访问这个属性。上述代码中如果去掉set部分,则外界只能读取name的值,如果去掉get部分,则只能给name赋值。这样就可以控制外界对私有属性name的访问权限了,这种写法是C#的一个特性。
    当然你也可以通过自己创建函数来对name进行取值和赋值,但这样就显得比较麻烦了。
      

  10.   


            public class User
            {
                private string _name;
                private int _age;
                private string _job;            public string Name
                {
                    get
                    {
                        return _name;
                    }                set
                    {
                        if (string.IsNullOrEmpty(value))
                        {
                            MessageBox.Show("还没起名呢");
                            return;
                        }
                        if (value == "猪")
                        {
                            MessageBox.Show("不能起这个名");
                            return;
                        }
                        _name = value;
                    }
                }
            }