vb.net - 困惑为什么这个函数不调用?
问题描述
我正在尝试将此函数调用到一个过程中,并且对为什么这不起作用感到困惑,我已经查找了如何格式化函数调用并且不理解我的错误。
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 被定义为一个字符串。我是否必须在这个 sub 中再次声明它才能工作?
解决方案
您可以稍微微调此代码:
Function check(ByVal stockArray as String()) As Boolean
Return Array.IndexOf(stockArray, txtSKU.Text) >= 0
End Function
如果元素在数组中,它将返回。
如果您的文件非常大并且您正在执行多次搜索,我建议存储在 HashSet 而不是数组中以获得 O(1) 搜索,而不是您得到的 O(n)。
我注意到您的股票数组必须在类级别而不是方法级别声明,才能被其他方法访问。
推荐阅读
- python - 在生产中更新 Django 翻译
- php - 从 php Backend 在 android 上显示 Gif 图像
- android - 如何将视频帧推送到 obs 服务器以在 Android 上进行移动直播
- tensorflow - 预测时检查点错误中未解决的对象
- c - C中结构定义的区别
- classification - 用插入符号分类 - 有问题;缺少所有 Sens 指标值:ROC Sens Spec
- postgresql - show_chunks() 在给出间隔作为争论时不显示块
- google-maps - 我可以将 Google 地图与其他应用程序同步,以便 G 地图中的设定目的地以某种身份出现在连接的应用程序中吗?
- onbeforeunload - onunload 和 onbeforeunload 有问题
- sonarqube - 为什么 Intellij IDEA 中没有出现安全热点声纳问题?