C#更正DateTime值的正确方法?

Dav*_*wer 1 c#

是否可以更改DateTime返回的值?或者至少将其分配给变量然后更改该变量?

 internal int hour;
    internal int minute;
    DateTime time = DateTime.Now;

public int incrementHour(int step)
        {
            if (step > 0 && hour < 24)
            {
                //step = step % hour;
                hour = (hour + step) % 24;
                time.AddHours(hour);
                return hour;
            }//end of if

            else
            {
                MessageBox.Show("Please enter a positive number.");

                return 0;
            }//end of else
        }//end of incrementHour
Run Code Online (Sandbox Code Playgroud)

Addhours从外观上看并没有做任何事情.

Bro*_*ass 12

实例DateTime是不可变的 - AddHours()返回一个DateTime反映更改值的新实例- 因此您必须将更改后的值重新分配给您的时间变量:

time =  time.AddHours(hour);
Run Code Online (Sandbox Code Playgroud)

用于AddHours方法的MSDN (也适用于所有其他方法DateTime):

此方法不会更改此DateTime的值.相反,它返回一个新的DateTime,其值是此操作的结果.返回的DateTime对象的Kind属性与value的属性相同.