You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB如何将变量拆分到独立类,使其可在Form1内像全局变量调用

VB.NET 拆分变量到独立类的简便实现方案

根据你的需求,这里给出3种常用的实现方式,按简便程度排序:


方案1:直接用Module(最省事,效果和全局变量完全一致)

VB的Module天生就是用来存放全局共享成员的,定义后无需实例化、不需要加前缀就可以在整个项目里直接调用,和Form1自身成员的使用体验完全一致:

' 新建一个Module文件,比如命名为AppVariables.vb
Public Module AppVariables
    ' 这里直接定义你需要的变量即可
    Public Var1 As Integer
    Public UserName As String
    Public IsLogin As Boolean
End Module

在Form1的任意Sub/Function里直接调用变量名就行,比如:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Var1 = 10
    TextBox1.Text = UserName
End Sub

方案2:使用Shared静态类(如果你一定要用Class实现)

给Variables类的所有变量加上Shared关键字,就可以不用实例化直接访问:

Public Class Variables
    ' 所有变量添加Shared修饰
    Public Shared Var1 As Integer
    Public Shared UserName As String
End Class

如果想和Form1自身成员一样不用加Variables.前缀,可以在Form1代码的最顶部加静态导入(VB14及以上版本支持):

Imports static 你的项目命名空间.Variables

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 直接用变量名即可
        MsgBox(Var1)
    End Sub
End Class

方案3:实例化成员(适合变量和Form1实例绑定的场景)

如果你的变量不需要全局共享,只属于当前Form1的实例,避免多个窗体实例共用变量冲突,可以在Form1里定义Variables的实例成员:

Public Class Form1
    ' 定义为Form1的私有成员,命名可以简化方便调用
    Private ReadOnly V As New Variables()

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 用V.前缀调用,写法也很简洁
        V.Var1 = 100
    End Sub
End Class

注意事项

  • 用Module或者Shared类的共享变量,多线程场景下修改要加锁,避免出现线程安全问题
  • 如果是多窗体实例的项目,优先选方案3,不会出现多个窗体互相干扰变量的问题

内容的提问来源于stack exchange,提问作者unovillegas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 03:06:01