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为 的值。要么 a)尚未初始化,要么 b)可能在这一点上。它永远不会将自己更新为任何其他值,因此(对于 b)在这里:rtb.Textrtbrtb.TextNothing

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

将尝试调用Split不存在的字符串。


这些是我最好的猜测——但如果两者都不对,你需要学习调试

我假设(对于 b)您在按下保存按钮时遇到错误(这是一个假设,因为您没有告诉我们您正在做什么来触发错误)。

如果是这种情况,那么您需要在方法的第一行设置一个断点btnSaveIP_Click,然后按下按钮 - 然后您可以检查每个变量的状态并确定哪个是Nothing以及何时。

于 2013-11-05T07:49:43.553 回答