.classファイルで使用されている淡色

私はこれを持っているので、Javaの.classファイルを使用してイベントを呼び出してメインコードで使用できるような方法で使用したいと思っています。

問題は、私の淡色を使用するために.classファイルを取得できないことです

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

コードは短縮されましたが、すべての関連性と必要な部分があります。

0
あなたの変数のスコープが宣言されたクラスに限定されているように思えます。
追加された 著者 Keith Beard,
getfuelメソッドを使ってFuelCapacityを渡すこともできます
追加された 著者 Keith Beard,

4 答え

フォームの実際の変数をメソッド呼び出しで渡す代わりにフォームから使用する場合は、dimを使用する代わりにpublicを宣言する必要があります。

...
Private OutGauge As OutGaugeInterface

Public SpeedPref As String
Public FuelCapacity As String
Public Fuel As String
...
2
追加された

Dim のMSDNページを見る>ステートメント。

それは述べている:

クラス、構造、またはモジュールの外部にあるコードは、メンバーを限定する必要があります   変数の名前をそのクラス、構造体、またはモジュールの名前で置き換えます。   プロシージャまたはブロックの外部のコードは、ローカル変数を参照することはできません   そのプロシージャまたはブロック内で実行されます。

また、この MSDN記事によれば、Dim Statementのデフォルトのアクセスレベルはモジュールレベルでプライベート。

なぜ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
1
追加された
@AdamCoulson答えが役立って問題を解決した場合は、回答してください
追加された 著者 Mark Hall,
複数のクラスにまたがって燃料の計算を返すなら、それは共有関数になります。
追加された 著者 Keith Beard,
燃料にもっと多くの方法が必要な場合は、Fuelで起こるすべてのことを処理するクラスを作るだけです。
追加された 著者 Keith Beard,
これに感謝し、完璧に働いた
追加された 著者 Adam Coulson,
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
1
追加された

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
0
追加された