Подтвердить что ты не робот

Оператор нулевого коагуляции VB.NET?

Возможные дубликаты:
Оператор Coalesce и Условный оператор в VB.NET
Есть ли эквивалент VB.NET для С#? оператора?

Существует ли встроенный эквивалент VB.NET для оператора С# с нулевым коалесцированием?

4b9b3361

Ответ 1

Да, есть, до тех пор, пока вы используете VB 9 или более позднюю версию (входит в состав Visual Studio 2008).

Вы можете использовать версию If оператора, чтобы принять только два аргумента:

Dim myVar? As Integer = Nothing
Console.WriteLine(If(myVar, 7))

Более подробную информацию можно найти здесь в сообщении в блоге командой VB.NET.

(Да, это оператор , хотя он похож на функцию. Он будет скомпилирован до того же ИЛ, что и "правильный" оператор с нулевым коалесцированием в С#.)

Пример

Dim b As Boolean?
Console.WriteLine("{0}.", If(b, "this is expected when b is nothing"))
'output: this is expected when b is nothing.

b = False
Console.WriteLine("{0}.", If(b, "this is unexpected when b is false"))
'output: False.

b = True
Console.WriteLine("{0}.", If(b, "this is unexpected when b is true"))
'output: True.

Ответ 2

В соответствии с этим question кажется, что ответ If()

Ответ 3

Нет. Используйте GetValueOrDefault; почему он там!