Я пытаюсь понять, почему два примера кода ведут себя по-разному. Я всегда считал, что функция If() имитирует языковую функцию If. Или я смотрю на поведение Nullable(Of Integer), которое вызывает это?
Пример 1:
If Not String.IsNullOrWhiteSpace(PC.SelectedValue) Then
Dim pcFilter1 As Integer? = CInt(PC.SelectedValue)
Else
Dim pcFilter1 As Integer? = Nothing
End If
Пример № 2:
Dim pcFilter2 As Integer? = If(Not String.IsNullOrWhiteSpace(PC.SelectedValue),
CInt(PC.SelectedValue),
Nothing)
Результат:
pcFilter1 = ничего
пкФильтр2 = 0