DateTime dt=DateTime.Now;
MessageBox.Show(dt.ToString());//显示12号
dt.AddDays(-1);
MessageBox.Show(dt.ToString());//还是12号DateTime dt = DateTime.Now;
MessageBox.Show(dt.ToString());//显示12号
DateTime temp = dt.AddDays(-1);
MessageBox.Show(temp.ToString());//显示11号为什么?

解决方案 »

  1.   


    DateTime dt=DateTime.Now; 
    MessageBox.Show(dt.ToString());//显示12号 
    dt = dt.AddDays(-1); 
    MessageBox.Show(dt.ToString());//还是12号 
      

  2.   

     dt.AddDays(-1); AddDays是返回一个datatime,不是去修改dt的值.dt = dt.AddDays(-1); 
        [align=center]====  ====
    [/align]
      

  3.   

    1楼正解,同样的string类的方法的操作也是一样。
      

  4.   

    dt.AddDays(-1); 
    ======
    并不代表dt被修改了如果这样就不一样了
    DateTime dt = DateTime.Now;
    MessageBox.Show(dt.ToString());//显示12号 
    dt = dt.AddDays(-1);
    MessageBox.Show(dt.ToString());//显示11号 
      

  5.   

    LZ需要理解dt.AddDays(-1)方法的意思
      

  6.   

    AddDays() 方法只是返回一个新的DateTime对象,并不对原来的对象做改变。
      

  7.   

    不是有个方法可以干这个事情么?substract()
      

  8.   

    楼主应该这样理解,
    int a=3;
    int b=a-1; 这时并没有对a赋值。b等于2,才是要求的值。
    dt.AddDays(-1)相当于右面的表达式,返回一个datetime的值。 
      

  9.   

    基础知识很重要!
    基础没打好的现去回炉再造下再来写程序,否则你写的程序可能有隐患而不自知!
    DateTime是个结构,值类型!
    你见过结构的方法可以修改自身数据的吗?
      

  10.   

    DateTime是值类型,就这么简单
      

  11.   

    也不能说值类型的方法都不能修改值类型本身的值。只是Microsoft在设计值类型的所有方法时,这些方法都不会去改变值类型本身的值,这是一条设计原则。
      

  12.   

    DateTime dt=DateTime.Now; 
    MessageBox.Show(dt.ToString());//显示12号 
    // 
    MessageBox.Show(dt.AddDays(-1).ToString());//11号 DateTime dt = DateTime.Now; 
    MessageBox.Show(dt.ToString());//显示12号 
    DateTime temp = dt.AddDays(-1); 
    MessageBox.Show(temp.ToString());//显示11号 
      

  13.   


    当然他们是站在一个完全不会的角度来要求我们,但是世界上用我们研发出来的系统的不是我们这些搞IT的,
    大部分都是会发发邮件,上上QQ,MSN的人,如果达到了日本猪的要求,OK你的网站十分的人性化,而且他没能力能
    当你领导?我想现实世界不会大家都瞎了眼,他在其他方面带来的利润比他搞IT带来的利润要好,我们就说他有能力
    一个管理者可以不会技术,但他会请有技术的来,一个管理者可以不会数钱,但可以找个会数的,但是他绝对不可以
    没有组织的能力,否则大家都会像散沙