Есть ли способ передать значение одного объекта DateTime другому без ссылки на один и тот же объект? - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь создать программу, которая выводит маршрут, но у меня возникают проблемы с поиском пути вокруг моих двух 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.

Ответы [ 2 ]

1 голос
/ 22 мая 2019

System.DateTime структура является неизменной , что означает, что она не может быть изменена.Его методы, такие как AddMinutes, не изменяют значение исходной структуры, но имеют возвращаемое значение, которое содержит значение, являющееся результатом указанной операции.

Вместо этого следует использовать DateTime2 = DateTime1.AddMinutes(minutes).

0 голосов
/ 22 мая 2019

Строка DateTime2.AddMinutes(minutes); не является void, она возвращает результат.Измените его на:

DateTime2 = DateTime1.AddMinutes(minutes);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...