我正在尝试创建一个输出行程的程序,但是在围绕指向同一对象的两个DateTime
对象周围寻找方法时遇到了问题。特定的DateTime
作为参数传递给方法,我在方法内使用了另外两个DateTime
对象(当前都指向参数)
memberwiseClone()
之类的常规修补程序都无法用于DateTime
,因此我有些茫然。
{
DateTime1 = x;
for (int i = 0; i < someArray.Length; i++)
{
DateTime2 = DateTime1;
double minutes = someValue / someOtherValue;
DateTime2.AddMinutes(minutes);
WriteLine("{0:hh//:mm} ---> {1:hh//:mm}, item #{2}", DateTime1, DateTime2, i);
DateTime1 = DateTime2;
}
}
理想情况下,我希望它可以打印出以下内容:
"21:00 ---> 21:30, item #1"
"21:30 ---> 22:00, item #2"
但是,此刻,我只是将所有值都设为DateTime
参数的初始值。
答案 0 :(得分:1)
System.DateTime
结构是不可变的,这意味着它无法更改。
其类似AddMinutes
的方法不会更改原始结构的值,但它的返回值包含指定操作的结果。
您应该改用DateTime2 = DateTime1.AddMinutes(minutes)
。
答案 1 :(得分:0)
第DateTime2.AddMinutes(minutes);
行不是void
,它返回结果。更改为:
DateTime2 = DateTime1.AddMinutes(minutes);