list(of class.object) chargement de la liste
Bonjour a tous,
Je travaille actuellement sur un projet assez important en terme de nombre de lignes et j'y ai inséré quelques class objet qui ont parfois entre 20 et 50 propriétés.
Comme je travaille sur des bases de données en multi-poste et multi-taches, j'ai donc développé des listes de classe objet que je ne recharge que lors du démarrage ou lorsque la classe a été modifiée, et ce afin d’accéder plus rapidement et sans accès réseau au données très fréquemment utilisées tel que liste de projets, liste d’unités, liste de devises avec taux de change, etc...
Tout marche très bien mais, je cherche a alléger mon code. J'ai donc crée pour ce forum un petit exemple qui ne sert a rien si ce n'est a exposer mon problème.
construction de la classe
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
Namespace Lettres
Module ClassC
Public Class LConsVoy
Private m_id As Integer
Private m_Cons As String
Private m_Voy As String
Public Sub New(ID As Integer, Cons As String, Voy As String)
m_id = ID 'numero d'ordre
m_Cons = Cons 'consonnes
m_Voy = Voy 'voyelles
End Sub
Public Property ID As Integer
Get
Return m_id
End Get
Set(value As Integer)
m_id = value
End Set
End Property
Public Property Cons As String
Get
Return m_Cons
End Get
Set(value As String)
m_Cons = value
End Set
End Property
Public Property Voy As String
Get
Return m_Voy
End Get
Set(value As String)
m_Voy = value
End Set
End Property
End Class
End Module
End Namespace |
la partie test de la classe
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
Public Class Form1
Dim LstClasLet As New List(Of Lettres.LConsVoy) 'define a list of class
Dim tblC() As String = {"B", "C", "D", "F", "G", "H"}
Dim tblV() As String = {"A", "E", "I", "O", "U", "Y"}
Private Sub LoadList1()
Dim CL As Lettres.LConsVoy
For n As Integer = 0 To 5
CL = New Lettres.LConsVoy(n, tblC(n), tblV(n))
LstClasLet.Add(New Lettres.ClassC.LConsVoy(CL.ID, CL.Cons, CL.Voy))
Next
Dsp
End Sub
Private Sub loadlist2()
Dim CL As Lettres.LConsVoy
For n As Integer = 0 To 5
CL = New Lettres.LConsVoy(n, tblC(n), tblV(n))
'LstClasLet.Add(New Lettres.ClassC.LConsVoy(CL)) *** c'est de cette facon que j'aimeri pouvoir charger ma list d'objets plutot que d'ecrire toutes les proprietes une a une
Next
DSP()
End Sub
Private Sub DSP()
Dim Str As String = ""
For Each C As Lettres.LConsVoy In LstClasLet
Str = Str & C.ID & " " & C.Cons & " " & C.Voy & vbCrLf
Next
MsgBox(Str)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
LoadList1()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
loadlist2
End Sub
End Class |
La procédure LoadList1 fonctionne parfaitement mais, si il y a 50 propriétés dans la classe, il faut les écrire une a une.
Je n'arrive pas a faire fonctionner le chargement de la liste de classe en invoquant uniquement la classe (loadlist2). Je comprends bien pourquoi ça merde, je cherche juste a contourner cela sans y parvenir.
J'ai bien entendu retourne le web et les forums sans résultats. Si vous avez un lien ou une idée...
Ou peut être suis complètement parti a l'envers, le but étant de limiter les accès réseau et soulager la BDD et le serveur, peut être y a t'il une autre solution que les listes de class...
Merci a tous.