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
la partie test de la classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 procédure LoadList1 fonctionne parfaitement mais, si il y a 50 propriétés dans la classe, il faut les écrire une a une.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
Partager