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

如何在VB .NET中解决此范围问题?

发布时间:2020-12-17 07:17:53 所属栏目:百科 来源:网络整理
导读:我有一个像这样的代码结构: For row = 1 To numRows Dim arrayIndex As Integer = 0 For column As Integer = startColumn To endColumn ' whatever code arrayIndex = arrayIndex + 1 NextNextDim arrayIndex As Integer = 0For column As Integer = start
我有一个像这样的代码结构:

For row = 1 To numRows
   Dim arrayIndex As Integer = 0
   For column As Integer = startColumn To endColumn
      ' whatever code
      arrayIndex = arrayIndex + 1
   Next
Next

Dim arrayIndex As Integer = 0
For column As Integer = startColumn To endColumn
   ' whatever code
   arrayIndex = arrayIndex + 1
Next

不完全是代码,所以我真的不需要关于重构的建议,但我的问题是这个 – 用这段代码我得到编译器错误的第一个Dim arrayIndex As Integer = 0 – “变量’arrayIndex’隐藏一个变量封闭的.“据我所知,arrayIndex是第一个for循环的本地,在我们到达第二个循环时不应该存在.如果我尝试将arrayIndex的第二个声明更改为arrayIndex = 0,我得到错误“名称’arrayIndex’未声明”,正如我预期的那样.那么它是否可见?这与Dim关键字有关吗?关于如何解决这个问题的任何建议,除了将第二个索引变量命名为别的什么?

解决方法

So is it visible,or not?

反过来说.外部变量在内部范围中可见.它无法访问,因为它尚未声明,因此其生命周期尚未开始.但该名称已存在于范围内.

Does this have something to do with the Dim keyword?

实际上,这只是对范围在VB中如何工作的限制.变量在其生命周期开始之前就存在于范围内.由于其名称被转移到嵌套范围,因此其他变量不能具有相同的名称.

(编辑:李大同)

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

    推荐文章
      热点阅读