Какая разница в двух блоках кода ниже?Я ожидал, что они вернут тот же результат, но они этого не сделают.
В случае, когда xml. @ Type = "null", я хочу, чтобы PatientMetricTypeID (целое число с нулевым значением) в итоге получило значение Nothing.
Блок № 1: If ()
В этом случае он заканчивается как 0. Похоже, ничто не рассматривается как целое число и преобразуется в 0. Я могувроде как понять, почему это может произойти, но не полностью ... Я хотел бы понять, как именно это работает, и если есть обходной путь.
Dim PatientMetricTypeID As Integer? = If(xml.@Type = "null",
Nothing,
CType([Enum].Parse(GetType(PatientMetricTypes), xml.@Type), Integer))
Блок № 2: Если
В этом случае все заканчивается как Ничто - ожидаемое поведение.
Dim PatientMetricTypeID As Integer?
If xml.@Type = "null" Then
PatientMetricTypeID = Nothing
Else
PatientMetricTypeID = CType([Enum].Parse(GetType(PatientMetricTypes), xml.@Type), Integer)
End If