Почему условно, если в VB не требуется обработать непосредственное действие условий. Например, в С# это просто отлично...
bool i = false;
i = (1<2)? true:false;
int x = i? 5:6;
Но если бы мне захотелось то же самое в VB, мне пришлось бы использовать его
Dim i as Boolean = CBool(IIF(1<2, True, False))
Dim x as Integer = CInt(IIF(i, 5, 6))
Я не понимаю, почему С# выполнит преобразование и почему VB этого не делает. Должен Я выполняю свои условия С#, например
bool i = Convert.ToBoolean((1<2)? True: False);
int x = Convert.ToInt32(i? 5:6);
Кроме того, да, я знаю, что IIF возвращает объект типа, но я бы предположил, что С# делает так же, как вы можете вернуть больше, чем просто True | False; мне кажется, что С# обрабатывает неявное преобразование.