Возможно назначение внутри IIF, почему не работает? - PullRequest
1 голос
/ 19 августа 2011

Работа:

publicity.Target = IIF(radioTarget1.Checked, "_blank", "_self").toString

Не работает:

IIF(radioTarget1.Checked, publicity.Target = "_blank", publicity.Target = "_self")

Почему не работает второй вариант?

Ответы [ 2 ]

2 голосов
/ 19 августа 2011

Поскольку внутри вызова функции вы выполняете не присваивания, а сравнения.

Это так же, как:

Dim result As Boolean
If radioTarget1.Checked Then
  result = (publicity.Target = "_blank")
Else
  result = (publicity.Target = "_self")
End If
0 голосов
/ 19 августа 2011

IIF - это функция, а не функция языка.

Вторые два параметра - это объекты, которые являются потенциальными возвращаемыми значениями функции ... не блок кода.

http://msdn.microsoft.com/en-us/library/27ydhh0d%28v=VS.90%29.aspx

...