Во-первых, вы не можете неявно преобразовать double?
в double
. Причина в том, что каким будет значение double
, если double?
представляет значение null
(то есть, value.HasValue
является ложным)? То есть преобразование из double?
в double
приводит к потере информации (это сужающее преобразование). Неявные сужающие преобразования обычно не одобряются в рамках.
Но на самом деле проблема, которую вы видите здесь, это нечто иное. Если у вас есть метод, который принимает параметр out
типа T
, вы должны передать переменную типа T
; в этом случае не может быть никакого изменения типа, как с параметрами не ref
и out
.
Чтобы обойти вашу проблему, используйте следующее:
if (AltFrom == null) {
double value;
Double.TryParse(Columns[LatIndex].Trim(), out value);
AltFrom = value;
}