Я новичок в дженериков и коллекций в VB.Net. Я написал свой первый класс, который создает список пользовательских объектов. Хотя кажется, что это работает, я считаю, что я сделал это в грубой форме, и я хотел бы знать, как улучшить его для кода, который должен будет вызвать его. Здесь существенная часть класса списка:Как сделать VB.Net класс список более гибким для вызывающего
Public Class Subscribers
Public List As New List(Of Subscriber)
Public Sub New()
Dim sConnDatabase As String = ConfigurationManager.ConnectionStrings("DatabaseConnString").ConnectionString
Dim connection As New SqlConnection(sConnDatabase)
Dim cmd As SqlCommand
cmd = New SqlCommand("SELECT * FROM dbo.Subscriber_v", connection)
cmd.CommandType = CommandType.Text
connection.Open()
Dim objReader As SqlDataReader = cmd.ExecuteReader()
Do While objReader.Read()
Dim id As Integer = objReader("SubscriberID")
Dim s As Subscriber = New Subscriber(id)
List.Add(s)
Loop
objReader.Close()
connection.Close()
End Sub
End Class
Вот мой первый маленький тест для использования класса:
Dim n As String
Dim d As Integer
Dim allSubs As New Subscribers()
For Each Subscriber In allSubs.List
n = Subscriber.SubscriberName
d = Subscriber.DaysUntilExpired.ToString()
Next
Конкретный вопрос, касающийся улучшения будет: как включить вызывающий в код что-то вроде:
For Each x In allSubs
n = x.SubscriberName
d = x.DaysUntilExpired.ToString()
Next
будет ли какой-нибудь способ кодирования класса, так что allSubs может быть выражен без необходимости указать .list - и какой-то образом выразить это такое, что х будет признан типом Subscriber.