Причина, по которой это трудно понять, связана с тем, что вы не знакомы с троичным оператором?:. По сути, он вычисляет выражение и возвращает одно из двух значений в зависимости от того, вернулось ли вычисление true или false .
Например, следующее выражение вернет «true», если логическое значение истинно, и «false» в противном случае:
bool test = false;
string testString = test ? "true" : "false";
Он действительно существует и в VB.NET - хотя и выражается немного по-другому. Эти два оператора соответственно в C # и VB.NET на самом деле одинаковы
Dim s As String = If(True, "kek", "lol")
string s = true ? "kek" : "lol";
Разница между IIf и тенарным оператором заключается в том, что IIf всегда будет оценивать как второй, так и третий параметр, поскольку IIf является функцией, а не оператором. По этой причине арендный оператор гораздо предпочтительнее.
Примечание : оператор тенара был добавлен в VB 9, поэтому, если вы используете предыдущие версии, вам придется полагаться на функцию IIF для этой функции.