Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DateTime.AddDays()未按预期工作_C#_Visual Studio 2010_Datetime - Fatal编程技术网

C# DateTime.AddDays()未按预期工作

C# DateTime.AddDays()未按预期工作,c#,visual-studio-2010,datetime,C#,Visual Studio 2010,Datetime,我有一个简单的程序: DateTime aux = new DateTime(2012, 6, 12, 12, 24, 0); DateTime aux2 = new DateTime(2012, 6, 12, 13, 24, 0); aux2.AddDays(1); Console.WriteLine((aux2 - aux).TotalHours.ToString()); Console.ReadLine();

我有一个简单的程序:

        DateTime aux = new DateTime(2012, 6, 12, 12, 24, 0);
        DateTime aux2 = new DateTime(2012, 6, 12, 13, 24, 0);
        aux2.AddDays(1);

       Console.WriteLine((aux2 - aux).TotalHours.ToString());

        Console.ReadLine();
我调试了这个,发现
aux2.AddDays(1)似乎不起作用,我缺少什么?
它应该返回25,但答案是1

有什么问题


另外,
AddHours
不起作用,我想其他人也不起作用。

它起作用,但您不使用返回值,请尝试

aux2 = aux2.AddDays(1);
DateTime
s与
String
s共享这方面的不变性


编辑

上面有一小段关于它的内容

此方法不会更改此DateTime的值。相反,它 返回一个新的日期时间,其值是此操作的结果


DateTime.AddDays
返回添加指定天数的新日期时间。您需要将其分配给变量:

aux2 = aux2.AddDays(1);
您正在使用不可变函数。 DateTime函数是不可变的,一旦您将变量设置为它,它就不能更改,您可以将新变量设置为函数的工作状态。AddDay函数接受您输入的变量,但它不会更改保持不变的原始变量。因此,您需要将新变量设置为等于原始变量+一天

所以你真正需要做的就是改变

aux2.AddDays(1)

aux2=aux2.Adddays(1)


然后剩下的比较函数应该可以工作

DateTime
实例是不可变的。您必须将
.AddDays
的结果分配给另一个实例(或自身)。说真的:|,我说不出话来,我认为aux2会自动更改,这是一个错误。是的,“返回新的日期时间字符串…”,鼠标上的工具提示over@SasGabriel,请注意.NET VS中的工具提示/文档会告诉您“不必要的分配”“这样做的时候。显然这是非常必要的,应该有人告诉Microsoft。@Lucas925您正在使用该变量吗?