本帖最后由 qwerqwerwerew 于 2014-02-01 07:36:44 编辑

解决方案 »

  1.   

    我调试了,显示的是如果是负1的话就没有执行这句话,this.age = value
    为什么不执行?这里又没有else,执行完if不就是该下一句吗
      

  2.   

    if (value < 0)
    {
        // return;
        this.age = 某个值
    }
      

  3.   

                       set {
                        if (this.age < 0)
                        {
                            return;
                        }
                   s.age = value;
                        
      

  4.   

         this.age = value;
      

  5.   

    return 的意思就是  返回调用处,后面代码不执行了。
      

  6.   

    程序员首先要相信的真理是“机器是死脑筋,他不会说假话”(起码这个世纪内计算机还是不会说假话滴)ok,在这个真理的前提下,来看代码,小于0你并没有重新对字段age赋值啊,get就是get滴字段age的值,既然你没有重新赋值,那么他理所应当保持你上次赋的值
      

  7.   


    谢谢各位!但还是没有明白,
    判断小于0以后,紧接着的this.age = value 不就是在赋值吗? 
    if语句里的return,return到哪里去了?
    后面这句话this.age = value 好像是没有执行,为什么?if判断不管真假,不都应该执行大括号之后的语句吗
      

  8.   


    谢谢各位!但还是没有明白,
    判断小于0以后,紧接着的this.age = value 不就是在赋值吗? 
    if语句里的return,return到哪里去了?
    后面这句话this.age = value 好像是没有执行,为什么?if判断不管真假,不都应该执行大括号之后的语句吗
    其实get/set就是方法。
    set其实就是这样一个方法:
    void Set_Age(int Age)
    {
        ...你的代码
    }
    调用:
    xxx.Age = xxx;
    其实就是
    xxx.Set_Age(xxx);
    所以你可以理解return去哪里了。
      

  9.   

    return后返回了,没有执行this.age=value
      

  10.   

    如果 value  是-1,则没有给 age赋值 (没有执行 age = value) 那么 age 没有被赋值 还是20