我正在尝试将此函数调用到过程中,并对为什么此函数不起作用感到困惑,我一直在寻找如何格式化函数调用的格式,并且不理解我的错误。
Structure Stock
Dim category As String
Dim price As Integer
Dim size As String
Dim sku As String
Dim color As String
End Structure
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim stockArray() As String =
IO.File.ReadAllLines("stockInventory.txt")
End Sub
Private Sub btnNewSave_Click(sender As Object, e As EventArgs) Handles btnNewSave.Click
Dim answer
answer = check(sku, stockArray)
End Sub
Function check(sku, stockArray) As Boolean
Dim flag As Boolean
Dim numVar = -1
numVar = Array.IndexOf(stockArray, txtSKU.Text)
If numVar = -1 Then
flag = False
End If
If numVar <> -1 Then
flag = True
End If
Return flag
End Function
这让我出错了,
未声明sku。由于受到保护,可能无法访问 级别
我有一个结构,其中sku被定义为字符串。我是否必须在此子句中再次声明它才能起作用?
答案 0 :(得分:1)
您可以对此代码进行一些微调:
Function check(ByVal stockArray as String()) As Boolean
Return Array.IndexOf(stockArray, txtSKU.Text) >= 0
End Function
如果元素在数组中,它将返回。
如果文件很大,并且要进行很多搜索,建议您将其存储在HashSet中,而不要存储在数组中以进行O(1)搜索,而不是要获取的O(n)。
我注意到您的股票数组必须在类级别(而不是方法级别)上声明,才能被其他方法访问。