asp.net - 函数导致自己的结构数组
问题描述
在 Gen 类文件中,我得到了这个结构:
Public Structure StructElements
Public ID As Integer
Public Name As String
End Structure
然后这个函数:
Public Function FillElements(_param As String, count As Integer) As StructElements
Dim i As Integer = 0
Dim myConn As SqlConnection = New SqlConnection
Dim myCmd As SqlCommand
Dim myReader As SqlDataReader
myConn.ConnectionString = sc.ConfigurationManager.ConnectionStrings("sidConnectionString").ConnectionString
myCmd = myConn.CreateCommand
myCmd.CommandText = "SELECT * FROM " & _param
Select Case _param
Case = "Scopes"
Dim Scope(count) As StructElements
myConn.Open()
myReader = myCmd.ExecuteReader()
While myReader.Read
Scope(i).ID = myReader.Item(0)
Scope(i).Name = myReader.Item(1).ToString
i += 1
End While
myReader.Close()
myCmd.Dispose()
myConn.Close()
myConn.Dispose()
Return Scope
...
End Function
然后在edit.aspx代码隐藏中我有:
Public Class edit
...
Public istGen = New Gen()
...
Public iScopes As Integer
Public Scope(iScopes) As StructElements
...
Private Sub edit_Init(sender As Object, e As EventArgs) Handles Me.Init
...
iScopes = istGen.CountElements("Scopes") - 1
ReDim Scope(iScopes)
Scope = istGen.FillElements("Scopes", iScopes)
...
End Sub
End Class
这是我得到的错误: “Gen.StructElements()”类型的值无法转换为“Gen.StructElements”。
我发现问题出在 FillElements 函数的“返回范围”上,因为它期望输出一个 StructElements 而不是一个 StructElements 数组(这就是 Scope 变量)。我应该如何更改我的代码以使函数输出成为 StructElements 数组?
我试图在网上寻找答案,但没有找到太多。有人建议使用列表而不是数组,但这会要求对我的代码和项目进行大量翻新,所以如果有一种简单的方法可以做到这一点,我会非常喜欢它。
预先感谢您的支持。问候。
解决方案
推荐阅读
- java - 使用原始格式字符串(文本)读取上传文件的内容
- android - 即使我以 100% 的速度推出应用程序,Google Play 控制台仍将生产状态显示为非活动
- c# - 如何正确获取自定义类列表的索引
并检查所选索引中的列表值是否等于 int [c#] - javascript - 如何使用 xterm.js 向 AWS 会话管理器 websocket url 发送命令?
- node.js - Bull JS 和在 Heroku 上运行不同的 worker
- c# - 从 ViewModel 调用 CodeBehind 方法
- amazon-web-services - AWS API Gateway 给出“多个客户端证书通过”错误
- java - 更新 Gradle 项目库
- java - 使用 OkHttp3 和 ReactiveX Java 实现长轮询的正确方法
- redux - 如何使用 redux 工具包从处于 redux 状态的数组中删除单个元素