DateTime time = DateTime.Parse('2009-1-2');
        DateTime ti = new DateTime();          ti=  time.AddYears(1);           Response.Write(ti.ToShortDateString());//输出:2010-1-2         Response.Write(time.ToShortDateString());//输出2009-1-2  问下达人,为什么time怎么还是原来的值呢,那个time对象也应该是2010年,奇怪我赋值给一个新的对象就可以看到新加的一年,郁闷啊
请达人赐教

解决方案 »

  1.   

    你试试int i=1;
    int j=2
    int k;k=i+1;k=j+1看看i 和  j 会变么?
      

  2.   

    当然没变化,ti=  time.AddYears(1); 
    是ti变化,不是time
      

  3.   

    只有 ti 变化!
    time 没变化!
      

  4.   

    当然没变化,ti=  time.AddYears(1); 
    是ti变化,不是time如果一定要变  定义成静态的吧
      

  5.   

     time.AddYears(1)返回的是一个新的DateTime,time本身是没有改变的,然后它把这个返回值赋给了ti,所以ti变成了2010-1-2,而time不变
    如果要time也改变,就必须time = time.AddYears(1);
      

  6.   

        ti=  time.AddYears(1); 只是将time的年加1后赋值给了ti
    但是time值并没有改变啊所以结果正确啊
      

  7.   

    只有ti会变..time是不会变的.ti是变量.而你又没给time赋新值.
      

  8.   

    DateTime是个结构,值类型!AddYears方法只是返回一个DateTime,而不是去修改time的值~