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 :

Instancier un tableau sur base d'une class


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Par défaut Instancier un tableau sur base d'une class
    Bonjour à tous,

    je débute en VB.
    Voici mon problème.

    J'ai une class Personne et une sous class employe.

    Je souhaite encoder quelques employes les uns à la suite des autres.
    Je sais que ce serait peut-être plus facile en enregistrant directement chacun des employes dan tableau mais j'essai dans un premier temps de le faire sans écrire dans un tableau.

    J'ai essayé en instanciant comme ceci mais cela ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim UnEnseignant() As enseignant = New enseignant()
    Quelqu'un aurait-il une solution ou une piste?

    Merci pour votre aide.

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    [...] les uns à la suite des autres.
    => Qu'entends-tu par là ?

    [...]mais cela ne fonctionne pas
    => Cela génère une erreur à la compilation? A l'exécution?
    => Qu'est-ce qui ne marche pas ?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim ListEnseignants() As Enseignant = New Enseignant(5) 'Un Array de 5 Enseignant
    ListEnseignants(0)= New Enseignant
    Dim unEnseignant As Enseignant = New Enseignant
    ListEnseignants(1) = unEnseignant

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim unEnseignant As Enseignant = New Enseignant
    et
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim unEnseignant As Enseignant = New Enseignant()

    Ne sont pas équivalents en VB ?

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    Citation Envoyé par Er3van Voir le message
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim unEnseignant As Enseignant = New Enseignant
    et
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim unEnseignant As Enseignant = New Enseignant()

    Ne sont pas équivalents en VB ?
    Si

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    Tu ferais mieux d'utiliser un List(Of ) plutôt qu'un tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim listeEnseignant As New List(Of Enseignant)
    Dim unEnseignant As New Enseignant()
    listeEnseignant.Add(unEnseignant)
    Avec une boucle sur la partie où tu ajoutes dans la liste pour les mettre à la suite des autres, ça te permet en plus que ta liste ne soit pas limiter en taille, de faire des tris dessus, etc...

  7. #7
    Membre éclairé
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Par défaut
    Bonjour à vous 2 et merci pour votre aide,

    en fait, j'ai créé une méthode qui est celle-ci :
    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
     
    Public Sub NewEnsignant()
            Dim UnEnseignant() As enseignant = New enseignant()
            Console.WriteLine("Nom : ")
            UnEnseignant().Nom = Console.ReadLine()
            Console.WriteLine("Prenom : ")
            UnEnseignant().Prenom = Console.ReadLine()
            Console.WriteLine("Age : ")
            UnEnseignant().Age = Console.ReadLine()
            Console.WriteLine("Profession : ")
            UnEnseignant().Profession = Console.ReadLine()
            Console.WriteLine("Cours : ")
            UnEnseignant().Cours = Console.ReadLine()
     
            UnEnseignant().Identite()
     
        End Sub
    Il me renvoie les messages suivants :
    Erreur 1 Impossible de convertir une valeur de type 'Oo_Animaux.enseignant' en 'Tableau à 1 dimension(s) de Oo_Animaux.enseignant'.
    et :
    Erreur 2 Le nombre d'index est inférieur au nombre de dimensions du tableau indexé.
    Est-ce que ce serait parce que j'ai 5 variables dans ma class ?

  8. #8
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    Lorsque tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim UnEnseignant() As enseignant = New enseignant()
    Tu essaies de mettre un enseignant en tableau ce qui n'est pas possible, à la rigueur tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim UnEnseignant As enseignant = New enseignant()
    pour la deuxième erreur c'est la même chose, tu essaies d'obtenir les propriétés directement du tableau, il faudrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Console.WriteLine("Nom : ")
            UnEnseignant(0).Nom = Console.ReadLine()
    pour obtenir le nom du premier de ta liste

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    Perso je ne vois surtout pas pourquoi il déclare unEnseignant en tant que tableu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Sub NewEnsignant()
            Dim UnEnseignant() As enseignant = New enseignant()
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim UnEnseignant As enseignant = New enseignant()
    Console.WriteLine("Nom : ")
            UnEnseignant.Nom = Console.ReadLine()
    ps:
    Le nom des classes s'écrit avec une majuscule "Enseignant"
    Le nom des variables s'écrit avec une miniscule "unEnseignant"

Discussions similaires

  1. [WD17] Indirection sur membre tableau de structure d'une classe
    Par cladoo dans le forum WinDev
    Réponses: 8
    Dernier message: 05/07/2012, 10h11
  2. instanciation unique d'un champs dans une classe
    Par F.Victoire dans le forum Delphi
    Réponses: 4
    Dernier message: 15/06/2006, 18h34
  3. Réponses: 2
    Dernier message: 17/01/2006, 13h18
  4. Réponses: 2
    Dernier message: 04/12/2005, 21h10
  5. Sortir un fichier csv sur base d une requete
    Par Freeman_80 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 12/01/2005, 11h21

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