0

我正在尝试确定一个字符串数组 [public] 的维度,以便整个应用程序可以在全局范围内看到它,然后将其填充到私有子中。这是我的代码。它没有抛出错误或异常,但它没有填充数组,当我询问数组内容时,它会抛出错误并说数组为空。

Public arrErrorKeyWords As New List(Of String)

Private Sub FillIt()
   Dim strErrorKeyWords As String = ""
   strErrorKeyWords = strErrorKeyWords & "sql"
   strErrorKeyWords = strErrorKeyWords & "could not open"
   strErrorKeyWords = strErrorKeyWords & "error"
   arrErrorKeyWords.AddRange(Split(strErrorKeyWords, ","))
End Sub

想法?

4

2 回答 2

1

看起来您正试图通过构造一个 CSV 字符串然后将其拆分为一个数组来填充它。但是,您没有包含分隔符。

你可以这样做:

Public arrErrorKeyWords As New List(Of String)

Private Sub FillIt()
   Dim strErrorKeyWords As String = ""
   strErrorKeyWords = strErrorKeyWords & "sql" & ","
   strErrorKeyWords = strErrorKeyWords & "could not open" & ","
   strErrorKeyWords = strErrorKeyWords & "error"
   arrErrorKeyWords.AddRange(Split(strErrorKeyWords, ","))
End Sub

或者更有效的是,您可以简单地执行以下操作:

Public arrErrorKeyWords As New List(Of String)

Private Sub FillIt()
    arrErrorKeyWords.Add("sql")
    arrErrorKeyWords.Add("could not open")
    arrErrorKeyWords.Add("error")
End Sub
于 2013-10-14T22:45:43.180 回答
0

可以在私有方法中使用公共变量,反之亦然。在班级内部,他们的行为是相同的。不同之处在于您班级之外的成员可见性。

但是,您不能将共享与非共享相交。

您发布的代码对我来说很好。执行后FillItarrErrorKeyWords有一个以该字符串为内容的元素:“sqlcould not openerror”。如果您需要进一步的帮助,请说明您的初衷。

照原样,我假设您正在尝试处理 SQL 异常。我的建议是使用ex.Message.ToString,而不是尝试用用户友好的消息代替。这些错误不会经常发生,但是当它们发生时,您真的很想查看原始异常文本,因为它可以极大地帮助您解决问题。

于 2013-10-14T23:12:09.310 回答