IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[vb.net]initialisateur pour les membres de structure


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut [vb.net]initialisateur pour les membres de structure
    bonjour,

    Je rencontre un petit soucis dans la gestion d'un tableau dynamique membre d'une structure.

    Voici ma structure de donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public Structure structdef
            Dim nbEmploye() As Integer = New Integer() {}
            Dim capHHebdo() As Integer
            Dim capHMensuel() As Integer
     End Structure
     
    Dim ResultatFeuille() As structdef = New structdef() {}
    Le soucis c qu'il ne semble pas possible d'initialiser une donnée de cette façon à moins qu'elle ne soit "shared".
    Voici l'erreur :

    Les initialiseurs pour les membres de structure ne sont valides que pour les membres et constantes 'Shared'.

    L'autre soucis, si je n'initialise pas mon tableau a vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Public Structure structdef
            Dim nbEmploye() As Integer
            Dim capHHebdo() As Integer
            Dim capHMensuel() As Integer
        End Structure
    Lorsque je tente de faire un Redim sur le tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReDim Preserve ResultatFeuille(col).nbEmploye(ResultatFeuille(col).nbEmploye.Length)
    J'ai une erreur de :

    L'index se trouve en dehors des limites du tableau.
    J'ai donc modifié ma structure comme suis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Structure structdef
            Shared nbEmploye() As Integer = New Integer() {}
            Dim capHHebdo() As Integer
            Dim capHMensuel() As Integer
      End Structure
    Le soucis c qu'avec cette méthode je n'ai plus la possibilité d'avoir un tableau nbEmployé indépendant pour chaque ResultatFeuille la modification de la taille d'un seul nbEmployé, modifie tous les autres.

    Je cherche donc un moyen d'initialiser vide mon nbemployé dans ma structure puis de pouvoir le faire grandir dynamiquement au besoin.

    Je ne sais pas si ce que je cherche à faire est possible et surtout si j'ai bien exprimé mon problème.

    Si vous avez une idée je vous remercie d'avance.

    cordialement

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    faut revoir les bases, une structure ce n'est pas une classe

    sans rentrer dans les détails, fait une classe plutot qu'une structure
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    bonjour,

    Euh je ne vois pas bien le rapport entre une classe et une structure de donnée?

    J'avoue ne pas avoir compris ta réponse.

    J'ai fait un tableau de strucdef

    et un structdef a trois données membres (je sais que c le termes utilisé en objet mais je ne connais pas d'autre terme pour définir les différents éléments composant ma strucdef.)

    Bon je continue a chercher comment gérer le redim sur un tableau composant une structure.

    cordialement

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Public Structure structdef
            Dim nbEmploye() As Integer
            Dim capHHebdo() As Integer
            Dim capHMensuel() As Integer
        End Structure
    à remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     Public Class structdef
            Dim nbEmploye() As Integer
            Dim capHHebdo() As Integer
            Dim capHMensuel() As Integer
        End Class
    enfin y a d'autres moyens de s'en sortir mais c'est le plus simple


    une structure est un type par valeur, pas besoin de faire de new dessus pour pouvoir l'utiliser
    donc pas d'initialisation possible
    il reste par contre possible de mettre un sub new dedans, et de l'appeler comme un new d'une classe
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    Bonjour,

    Comme je le dis plus haut je cherche bien a utiliser une structure de donnée et non une classe.

    Je viens de reparcourir le cours de Lassere et je pense avoir trouver une piste :

    http://plasserre.developpez.com/cour...ngage-vb3#LV-J

    Je fais quelque test et je reposte.

    cordialement.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    pourquoi vouloir utiliser une structure plutot qu'une classe ??
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Système de votes (pour les membres) : cmt le créer ?
    Par yazerty dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 20/02/2006, 12h58
  2. [VB.NET]Problème pour les feuilles MDI
    Par Skieur38 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/02/2006, 14h10
  3. [VB.NET]Reflexion lister les membres d'une classe ...presque
    Par lucie.houel dans le forum ASP.NET
    Réponses: 19
    Dernier message: 20/09/2005, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo