簡體   English   中英

在公共位置設置全局數組,然后將其填充到私有子目錄中

[英]Set up a global array in public and then fill it in a private sub

我正在嘗試確定字符串數組的大小[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

想法?

看來您正在嘗試通過構造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

可以在私有方法中使用公共變量,反之亦然。 在類中,它們的行為是相同的。 區別在於班級之外的成員可見性。

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

您發布的代碼對我來說很好用。 執行FillItarrErrorKeyWords具有一個以該字符串為內容的元素:“ sqlcould not openerror”。 如果您需要進一步的幫助,請說明您的初衷。

照原樣,我假設您正在嘗試處理SQL異常。 我的建議是使用ex.Message.ToString ,而不是嘗試用用戶友好的消息代替。 這些錯誤並不經常發生,但是當它們發生時,您確實希望看到原始的異常文本,因為它可以極大地幫助您解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM