0

ここに画像の説明を入力
私が欠けているものを見ることができることを願っています。
このエラーは、パブリック クラス globalv からこの変数を取得しようとした後に発生しました

public shared ip() as string

クラスを削除しましたが、まだこのエラーが発生します..

変数を「グローバル」にしたいので、必要になるたびに新しいインスタンスを作成しません。ということで、形でグローバル化するために一番上に置いてみました。

Public Class Form1
#Region "variables"
    Delegate Sub SetTextCallback(ByVal [text] As String)
    Dim x As New SetTextCallback(AddressOf ReceivedText)
    Dim stringOfRtb As String = rtb.Text
    Dim incoming() As String

    Dim ip() As String
#End Region

Private Sub btnSaveIP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveIP.Click
    incoming = stringOfRtb.Split(ControlChars.CrLf.ToCharArray) ''vcrlf splitter

    ip = incoming(3).Split(":"c)
    txtSend.Text = "set ip local " & ip(1)
    End sub

Private Sub btnSettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSettings.Click
    ip = incoming(3).Split("="c)
    txtIP.Text = ip(1)
    End sub

何が悪いのか分かりますか?それはこれの前に働いていました.. :(

4

2 に答える 2

0

アプリケーション全体で使用する「グローバル」変数を作成しようとしている場合は、クラスではなくモジュールで作成することをお勧めします。「Globals」などと呼ばれるアプリケーションのルート名前空間にモジュールを作成し、変数を宣言してPublic ip() As String(値を割り当てて)、そのアプリケーション内から呼び出すことができるようにするだけです。ただし、実際には、 ip() に割り当てられた値の一部が配列のどの要素への参照を与えていないという事実から、問題が発生しているip = incoming(3).Split(":"c)ようです( ip(1) = incoming(3).Split(":"c).

于 2013-11-05T07:49:10.153 に答える
0

このフィールド宣言:

Dim stringOfRtb As String = rtb.Text

フォームの作成stringOfRtbに の値に設定しrtb.Textます。a) まだ初期化されていないか、 b)この時点である可能性があります。それ自体が他の値に更新されることは決してないため、(b) の場合は次のようになります。rtbrtb.TextNothing

incoming = stringOfRtb.Split(ControlChars.CrLf.ToCharArray)

存在しない文字列を呼び出そうとしてSplitいます。


これらは私の最善の推測ですが、どちらも正しくない場合は、デバッグを学ぶ必要があります。

(b の場合) 保存ボタンを押したときにエラーが発生していると思います (これは、エラーをトリガーするために何をしているのかを私たちに伝えていないためです)。

その場合は、btnSaveIP_Clickメソッドの最初の行にブレークポイントを設定してからボタンを押す必要があります。その後、各変数の状態を調べて、どれがNothingいつであるかを判断できます。

于 2013-11-05T07:49:43.553 に答える