加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 单语句VB.NET条件为false时执行if-block? VS 2005的

发布时间:2020-12-16 09:47:39 所属栏目:asp.Net 来源:网络整理
导读:我想知道你以前是否遇到过这个bug: 在单行IF上,条件返回FALSE,但随后执行进入TRUE部分. 我在这里做错了吗? retries和errorTolerance都是Integer类型,从下面的屏幕截图中,重试次数小于errorTolerance.但它仍然执行True部分的声明. 这一直搞砸了我的程序,所
我想知道你以前是否遇到过这个bug:
在单行IF上,条件返回FALSE,但随后执行进入TRUE部分.

我在这里做错了吗? retries和errorTolerance都是Integer类型,从下面的屏幕截图中,重试次数小于errorTolerance.但它仍然执行True部分的声明.

这一直搞砸了我的程序,所以我所做的就是把Throw New Exception放在另一行,然后关闭End If并且它有效.

我想我的问题将是我以前的代码有什么问题?

解决方法

禁用优化以确保代码行与相应的编译指令之间存在明确的线性对应关系.

如果这是发布模式编译,并且重试只是一个超出范围的局部变量,编译器可能刚刚优化了在最初保存重试的寄存器中存储增量值,但在检查表达式时仍然使用该寄存器.

要确认这一点,您将看到retries和errorTolerance在发布模式下具有相同的值,并且在调试模式下重新编译后重试值会大一.逐步检查线条时,单独检查变量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读