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

C# Discussion :

List reste null après instanciation


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Par défaut List reste null après instanciation
    Bonsoir à tous,

    C'est désespéré et m'arrachant les cheveux que je viens chercher un peu d'aide sur le forum. Voilà le problème :
    Dans mon application, j'ai une classe Employee qui a dans ses attributs :
    List<Vacation> employeeVacations; (Vacation est une classe que j'ai définie)
    List<EmployeeAppointment> employeeAppointments; (idem)

    Les classes EmployeeAppointment et Vacation sont écrites comme des classes standards et exactement de la même manière l'une et l'autre.

    Cependant dans le constructeur de ma classe Employee j'instancie les 2 listes respectivement de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    employeeVacations = new List<Vacation>();
    employeeAppointments = new List<EmployeeAppointment>();
    Et là employeeAppointments est bien différente de null (son Count est égal à 0 car rien dedans) en revanche employeeVacations reste null et de ce fait inexploitable!

    Quelqu'un aurait une idée? Je n'en peux plus!
    Je tiens également à préciser que lors que la suggestion d’auto-complétion apparaît, j'ai un petit logo (dont je n'arrive pas à trouver la signification) contenant 3 petits rectangles (orange, rose, bleu) avec une petite enveloppe pour la classe EmployeeAppointment tandis que pour Vacation j'ai la même chose mais sans l'enveloppe... mystère?
    Ca vient de mon code ou Visual 2010? Qui me semble déconner un peu de temps en temps...

    Je vous remercie,

    burger

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu n'aurais pas une variable locale avec le même nom qu'un champ de ta classe ? Essaie comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.employeeVacations = new List<Vacation>();
    Citation Envoyé par mac&cheese Voir le message
    Je tiens également à préciser que lors que la suggestion d’auto-complétion apparaît, j'ai un petit logo (dont je n'arrive pas à trouver la signification) contenant 3 petits rectangles (orange, rose, bleu) avec une petite enveloppe pour la classe EmployeeAppointment
    C'est une classe "internal"

    Citation Envoyé par mac&cheese Voir le message
    tandis que pour Vacation j'ai la même chose mais sans l'enveloppe...
    C'est une classe publique

  3. #3
    Membre confirmé
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Par défaut
    Merci tomlev pour ta réponse.

    Cependant toujours la même chose.

    Alors j'ai du nouveau, quand je mets un point d'arrêt au debug, ma list est bien instanciée (plus égale à null) pourtant quand je l'utilise un peu plus loin, c'est là que j'ai une erreur me signalant que ma liste est null.

    Ca m'échappe completement!

    Je suis prêt à envoyer mon code si quelqu'un se sent d'attaque

    burger

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par mac&cheese Voir le message
    Je suis prêt à envoyer mon code si quelqu'un se sent d'attaque
    Envoie juste le code du constructeur et la déclaration de employeeVacations

  5. #5
    Membre confirmé
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Par défaut
    Voilà les attributs, le constructeur et la fonction dans laquelle ça bug (classe Employee) :
    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
     
    class Employee : Person
        {
            private static Services serviceList = new Services("datafiles/services.txt");
            private int _service_id;
            private string _service;
            private List<Vacation> employeeVacations;
            private List<EmployeeAppointment> employeeAppointments;
     
            public Employee(int id, string fn, string ln, int servId) : base(id, fn, ln)
            {
                _service_id = servId;
                _service = serviceList.getServiceNameById(servId);
                this.employeeVacations = new List<Vacation>();
                employeeAppointments = new List<EmployeeAppointment>();
            }
     
            public void addVacation(DateTime start, DateTime end)
            {
                Vacation vac = new Vacation(start, end);
                this.employeeVacations.Add(vac);
            }
    Et la déclaration de Vacation :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace WindowsFormsApplication1
    {
        [Serializable]
        class Vacation
        {
            private DateTime _start;
            private DateTime _end;
            private TimeSpan _duration;
     
            public Vacation(DateTime s, DateTime e)
            {
                _start = s;
                _end = e;
                duration = new TimeSpan(e.Ticks - s.Ticks);
            }
     
            public Vacation(Vacation vac)
            {
                _start = vac.start;
                _end = vac.end;
                duration = vac.duration;
            }
     
            public DateTime start
            {
                get { return start; }
                set { _start = value; }
            }
     
            public DateTime end
            {
                get { return _end; }
                set { _end = value; }
            }
     
            public TimeSpan duration
            {
                get { return _duration; }
                set { _duration = value; }
            }
        }
    }

  6. #6
    Membre confirmé
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Par défaut
    Bon problem solved!
    En fait je chargeais une instance d'Employee que j'avais sérialisée qui ne contenait pas la liste Vacation donc malgré le fait qu'elle s'instanciait correctement elle était écrasée au chargement...

    Merci tomlev en tout cas pour ton aide,

    Burger

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/10/2010, 21h02
  2. des Listes déroulante ...Et après?
    Par arti2004 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/03/2006, 15h40
  3. Réponses: 4
    Dernier message: 18/02/2006, 16h48
  4. get => pointeur null apres fermeture d'une sous-fenetre
    Par gorgonite dans le forum AWT/Swing
    Réponses: 15
    Dernier message: 11/02/2006, 21h42
  5. [VB]fichier XL reste verrouillé apres fermeture application
    Par abdou.sahraoui dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/01/2006, 14h34

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