Q
使用IIF错误
1
A
回答
1
IIF是否只返回一个值?
是的。
即即使我想设置按钮的宽度属性,那么我是否需要使用If结构?
不行,因为你可以返回值分配给Width
属性:
With Me.Button3
.Width = IIf(.Width = 123, 233, 150)
End With
需要注意的是,在VB.NET的当前版本中,If Operator应该用来代替IIF,因为它有各种优点(类型安全,短路等)。例如,使用If(...)
将允许您的代码在没有额外投射的情况下编译,即使您有Option Strict On
(您应该)。
With Me.Button3
.Width = If(.Width = 123, 233, 150)
End With
2
你的代码测试.Width = 123
,那么如果真或.Width = 150
如果假返回布尔表达式.Width = 233
,然后引发的结果了。这不是你想要的。你有三种选择:
' IIf function - not recommended since it is not typesafe and evaluates all arguments.
.Width = IIf(.Width = 123, 233, 150)
' If operator - typesafe and only evaluates arguments as necessary.
.Width = If(.Width = 123, 233, 150)
' If statement - not an expression.
If .Width = 123 Then .Width = 233 Else .Width = 150
2
使用VB.NEt的If() - 语句。它被称为“条件运算符”,并以多种语言存在。 IIf是一个VB特定的函数,具有不同的行为。 点击此处了解详情: Performance difference between IIf() and If
在这两种情况下,IIF和如果只返回一个值(IIF那些不输入,这是一个必须铸造的对象)。这似乎是你想反正事情:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Button3.Width = If(Button3.Width = 123, 233, 150)
End Sub
相关问题
- 1. SSRS IIF条件错误
- 2. SSRS 2008:iif IsNan语句错误错误参数数量错误
- 3. 对于颜色表达的iif错误
- 4. IIF(IsNothing(Fields!field.value),“”,Fields!.value.ToString))生成错误
- 5. iif和零作为错误结果
- 6. SSRS IIF声明显示值错误时出现#错误
- 7. 在MSACCESS报告使用IIF
- 8. VB .NET XDocument和使用IIF
- 9. 如何处理数据库空错误(已使用IIF东西是空)
- 10. MS Excel的查询表达式IIF语法错误
- 11. SSRS VB IIF语句返回NULL值的错误
- 12. 将IIF转换为CASE语句(THEN&ELSE语句中的错误)
- 13. 使用MS Access的SQL高级IIF
- 14. 使用VB.NET IIF我得到的NullReferenceException
- 15. MDX - 使用IIF影响套在CROSSJOIN
- 16. ORACLE IIF声明
- 17. 蟒:(ΔXA:B)IIF或
- 18. IIF在PROC SQL
- 19. IIF in postgres
- 20. IIF和isNothing
- 21. SSRS IIF语句
- 22. IIF声明LogiXML
- 23. SSRS IIF语法
- 24. IIF to Case翻译
- 25. 差异IIF语句
- 26. IIf函数解析
- 27. IIF声明在SSRS
- 28. IIF功能在SQL
- 29. IIF VS矩形SSRS
- 30. SSRS IIF不工作
好吧 - 我假设VB的'Option Strict On'和VBA的'Option Explicit'等价的功能? – whytheq
@whytheq:不,VB的Option Explicit等价于VBA的Option Explicit。 ['Option Strict'是新东西](http://msdn.microsoft.com/de-de/library/vstudio/zcd4xwzs.aspx)它禁止隐式转换。 – Heinzi
很高兴我问 - 感谢您的额外信息+答案 – whytheq