关于If语句的问题

Sheng450422 2013-06-09 03:01:29

If dt Is Nothing Or dt.Rows.Count <= 0 Then
Return
End If

dt是一个DataTable,还没有实例化,所以是Nothing,运行到这一句的时候为什么会报错呢?报的错误是“未将对象设置引用到对象的实例”,Or不应该是满足一个条件就运行Return,怎么后面的条件也判断了?
...全文
234 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sheng450422 2013-06-11
  • 打赏
  • 举报
回复
引用 4 楼 DianFanZuo 的回复:
[code=VB.net] If dt Is Nothing OrElse dt.Rows.Count <= 0 Then Return End If [/code]
没错,就是这样,以前一直是用Or来判断的,看来得大改特改了
Sheng450422 2013-06-11
  • 打赏
  • 举报
回复
引用 3 楼 Greatman01 的回复:
嘿嘿,在vb.net中短路比较是 OrElse,不是or。 我也曾查找了好久。
原来是这样啊,看来还是要多看看书
OutFocus 2013-06-09
  • 打赏
  • 举报
回复
其中还有andalso
OutFocus 2013-06-09
  • 打赏
  • 举报
回复
orelse 有一个对象不成立则执行return 可以看一下金旭亮同志的《编程的奥秘》
OutFocus 2013-06-09
  • 打赏
  • 举报
回复
[code=VB.net] If dt Is Nothing OrElse dt.Rows.Count <= 0 Then Return End If [/code]
Greatman01 2013-06-09
  • 打赏
  • 举报
回复
嘿嘿,在vb.net中短路比较是 OrElse,不是or。 我也曾查找了好久。
Sheng450422 2013-06-09
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
dt Is Nothing 只是判断有没有实例化,并不能作为是否为空表的依据。 要判断它是否为空,要用dt.Rows.Count>0 就行了
不是啊,我就是判断有没有实例化或者是否空表,我的dt没有实例化,第一句就应该为真了啊,那应该就不会再执行dt.Rows.Count这一句了
EnForGrass 2013-06-09
  • 打赏
  • 举报
回复
dt Is Nothing 只是判断有没有实例化,并不能作为是否为空表的依据。 要判断它是否为空,要用dt.Rows.Count>0 就行了

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧