Comment utiliser un tableau(n) d'instance de class ? [Résolu]

Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
- - Dernière réponse : Duke49
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
- 7 déc. 2010 à 11:03
Bonjour,

je retrouve pas cette méthode que j'utilisais en vb6, il dois y avoir certainement une méthode .net extra efficace pour remplacer mon code ?

    Shared METHODES() As clsMethode = Nothing

    Class clsMethode
        Public Shared NOM As String
        Public Shared PARAMETRES() As String
    End Class

    Structure PARAMETRES_METHODE
        Shared Sub AjouterMethode(ByVal NomMethode As String, ByVal NomParametres() As String)
            Dim curID As Integer

            If METHODES Is Nothing Then
                ReDim METHODES(0)                
            Else
                ReDim Preserve METHODES(METHODES.Length)                
            End If
            curID = (METHODES.Length - 1)

            METHODES(curID).NOM = NomMethode
            METHODES(curID).PARAMETRES = NomParametres
            ...
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
3
Merci
1 --> Evites les structures.
2 --> Mets en public ou internal METHODES
3 --> Evites d'ecrire le nom des variables, class, fonction, structure en majuscules

public Shared METHODES As New Dictionary(Of String, List(of Parametre))


Serait plus adapté et performant, il me semble

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nhervagault
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
3
Merci
C'est good ^^

Methodes est en partage interne
Parametres_Methode.AjouterMethode est en partage public

Merci pour tout !

Public Class clsTest
    Protected Shared Methodes As New Dictionary(Of String, String())

    Public Class Parametres_Methode
        Shared Sub AjouterMethode(ByVal NomMethode As String, ByVal NomParametres() As String)
            Methodes.Add(NomMethode, NomParametres)
        End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Duke49
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
0
Merci
Salut,

Array.Copy(YourArray, temp, YourArray.Length)


Mais il est préférable d'utiliser si tu peux des List(of T) c'est plus pratique. Pas de recopie pas de probleme de boxing unboxing, ....
Plus de méthodes disponibles.

Bon dev
Commenter la réponse de nhervagault
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
0
Merci
J'vais essayer List ^^

J'ai pondu ceci, mais quand j'passe mon pointeur de souris au dessus
de METHODES, rien ne s'affiche !? je ne peut pas contrôler en direct sa
contenance, pourquoi ?

    Shared METHODES As New Dictionary(Of String, Array)

    Structure PARAMETRES_METHODE
        Shared Sub AjouterMethode(ByVal NomMethode As String, ByVal NomParametres() As String)
            METHODES.Add(NomMethode, NomParametres)
        End Sub
Commenter la réponse de Duke49
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
0
Merci
En mode espion, il m'affiche ceci:
'METHODES' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.

Pourtant il n'y a aucune erreur !
Tout passe au pas-à-pas !
Commenter la réponse de Duke49
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
0
Merci
Pourquoi je suis obligé de rajouter le parent (clsMethode) pour avoir accès au debug de METHODES depuis ma fonction AjouterMethode ?

Public Class clsMethode
    Shared METHODES As New Dictionary(Of String, String())
    
    Structure PARAMETRES_METHODE    
        Shared Sub AjouterMethode(ByVal NomMethode As String, ByVal NomParametres() As String)
            clsExtract.METHODES.Add(NomMethode, NomParametres)
        End Sub
Commenter la réponse de Duke49
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
0
Merci
Pour ta question, structure est une structure interne à la classe clsMethode
Commenter la réponse de nhervagault