.class文件使用的Dims

时间:2011-12-19 03:04:43

标签: class vb.net

我有这个,我想使用类似于Java使用.class文件的方式来调用事件并在我的主代码中使用它们。

问题是我无法获取.class文件来使用我的Dims

Form1.vb的:

Namespace LFS_External_Client
    Public Class Form1
        Inherits Form

        Private OutGauge As OutGaugeInterface

        Dim SpeedPref As String
        Dim FuelCapacity As String
        Dim Fuel As String

        Public Sub New()
            InitializeComponent()
        End Sub

        Private Sub Form1_Load() Handles MyBase.Load
            Some Code
            GetFuel()
        End Sub
    End Class
End Namespace

然后在Dataproccer.vb(.class文件)中:

Public Class DataProcesser
    Public Sub GetFuel()
        Some Code
        Fuel = og.Fuel.ToString() * FuelCapacity
    End Sub
End Class

代码缩短了,但包含所有相关和必要的部分。

4 个答案:

答案 0 :(得分:2)

如果你想使用表单中的实际变量而不是通过方法调用传递它们,你需要将它们声明为public而不是使用dim:

...
Private OutGauge As OutGaugeInterface

Public SpeedPref As String
Public FuelCapacity As String
Public Fuel As String
...

答案 1 :(得分:1)

Dim FuelCapacity As String

Private Sub Form1_Load() Handles MyBase.Load
            Some Code
            DataProcesser.GetFuel(FuelCapacity)
End Sub

Public Shared Sub GetFuel(Byval FuelCapacity as string)
        Some Code
        Fuel = og.Fuel.ToString() * FuelCapacity
End Sub

答案 2 :(得分:1)

查看Dim语句的MSDN页面。

它声明:

  

类,结构或模块之外的代码必须符合成员资格   变量的名称,包含该类,结构或模块的名称。   过程或块之外的代码不能引用任何局部变量   在该程序或程序块内。

同样根据此MSDN article,Dim Statement的默认访问级别在模块级别为Private。

那么为什么不让GetFuel成为一个函数并以类似@kcBeard状态传递FuelCapacity并返回Fuel值。

Private Sub Form1_Load() Handles MyBase.Load    
    Some Code    
    Fuel = DataProcesser.GetFuel(FuelCapacity)    
End Sub    

Public Shared Function GetFuel(Byval FuelCapacity as string) as string
    Some Code
    return og.Fuel.ToString() * FuelCapacity
End Function

答案 3 :(得分:0)

您可以制作SpeedPref,FuelCapacity和Fuel公共成员变量,但更好的方法是使用适当的getter和setter在类上创建属性。 Dim只声明一个变量。请参阅下面修改后的代码示例:

Form1.vb:
Namespace LFS_External_Client
Public Class Form1
    Inherits Form

    Private OutGauge As OutGaugeInterface

    Private _SpeedPref As String
    Private _FuelCapacity As String
    Private _Fuel As String

    Public Property SpeedPref
        Get
            return _SpeedPref
        End Get
        Set(value As String)
            _SpeedPref = value 
        End Set
    End Property

    ...

End Class
End Namespace