Timespan.TotalDays - невозможно преобразовать double в строку - PullRequest
0 голосов
/ 30 мая 2018

Я искал решение в Google и здесь, но ничего не смог найти по этому поводу.Я пытаюсь понять разницу между датами.Я написал что-то вроде

TimeSpan difference = timealarm.Subtract(DateTime.Now);

, где timealarm равно DateTime.Now + 3 hours.Эта линия, кажется, в порядке.Я пытаюсь использовать

MessageBox.Show(difference.TotalMinutes);

, но затем я получаю сообщение об ошибке, указанное в заголовке:

не может преобразовать тип 'double' в 'строку.Visual Studio показывает ошибку здесь - разность. Всего минут.

Я новичок в .net и c #, думаю, это просто.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

MessageBox требует строку, и ваше значение равно double. Вам просто нужно преобразовать double в строку, как это

MessageBox.Show(difference.TotalMinutes.ToString());
0 голосов
/ 30 мая 2018

MessageBox.Show принимает строку.Тип difference.TotalMinutes является double.Не существует неявного преобразования из double в string, но вы можете вызвать метод ToString:

MessageBox.Show(difference.TotalMinutes.ToString());

, который просто использует используемую по умолчанию культуру для преобразования значения.(Так, использует ли он запятую или точку в качестве десятичного разделителя, например, зависит от вашей системы.)

В общем, когда вы получаете такую ​​ошибку, вы должны проверить:

  • Является ли ваш тип источника (double в данном случае) тем, что вы ожидаете?Если нет, возможно, вам следует изменить то, что вы вычисляете.
  • Является ли ваш "целевой" тип (в данном случае string) тем, что вы ожидаете?Если нет, возможно, вам следует изменить то, что вы называете, или то, как вы используете значение.

Если оба типа имеют смысл, вам нужно подумать о том, как вы хотите конвертировать изтип «источник» для типа «цель» - и это будет зависеть от контекста.

...