VB.NET如何在Sub内声明类级作用域变量 可跨Sub调用使用
问题实现方案
首先明确VB/VB.NET语法的作用域规则:在Sub过程内部用Dim常规声明的变量为过程级局部变量,仅在当前Sub执行期间生效,其余过程无法访问。要实现「变量可在类的所有Sub过程中调用」的需求,可按照以下方式操作:
标准方案:声明类级成员变量
将变量声明在类内部、所有子过程的外部,作为类的成员字段,即可在整个类范围内访问,你可以在指定Sub中完成变量的赋值/初始化:
Class start ' 类级成员变量,作用域覆盖整个类 Dim n As Integer Sub one() ' 在对应Sub中完成变量赋值 n = 5 + 2 End Sub Sub two() ' 其他Sub中可直接调用该变量 MsgBox(n) End Sub End Class
可选补充:首次调用Sub时才初始化变量
如果你需要变量仅在对应Sub第一次执行时才完成初始化,避免提前占用资源,可以增加初始化状态标记:
Class start ' 类级变量声明,Private关键字明确仅类内部可访问 Private n As Integer ' 初始化状态标记 Private _nHasInit As Boolean = False Sub one() ' 仅第一次执行Sub one时初始化变量 If Not _nHasInit Then n = 5 + 2 _nHasInit = True End If End Sub Sub two() ' 调用前可校验初始化状态,避免取到默认值 If _nHasInit Then MsgBox(n) End If End Sub End Class
- 成员变量声明时可将
Dim替换为Private,明确限制变量仅在当前类内部可访问,不会暴露给类外部的代码 - 如需允许类外部也能访问该变量,可将声明关键字替换为
Public
内容的提问来源于stack exchange,提问作者qasemhassan
相关产品推荐
相关产品推荐

