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 :

Class retournant LIST (help) [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2015
    Messages : 18
    Points : 24
    Points
    24
    Par défaut Class retournant LIST (help)
    Bonjour, je suis en train de bloquer sur un programme, j'ai une problème d’instanciation d'objet, je colle ici mon code.
    J'ai un problème avec cette aspect du C#, c'est sans doute un truc stupide mais je bloque depuis un moment. Merci d'avance

    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
     
    class Program
        {
            static void Main(string[] args)
            {
                GetFonction("StringType");
            }
     
            public static S_E GetFonction(string Val)
            {
                string[] array = new string[] { "zero", "un", "deux" };
                string[] array2 = new string[] { "Desc0", "Desc1", "Desc2" };
                sous_ensemble SE = new sous_ensemble();
                SE.Statut="Mon status";//OK
     
                for (int i = 0; i < 3; i++)
                {
                    SE.Numero.Add(array[i]);//ici //La référence d'objet n'est pas définie à une instance d'un objet.
                    SE.Descri .Add(array2[i]);
                }
                return SE;
            }
        }
        public class S_E 
        {
            public string Statut { get; set; }
            public List<string> Numero{ get; set; }
            public List<string> Descri { get; set; }
        }

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Meme si tu instancies une classe, ce n'est pas pour autant que les sous objets sont instancies, du coup numero et descri sont nulls, meme si l'instance est cree.

    Si on part du postulat que si l'objet existe ces 2 proprietes doivent etres instanciee, alors tu as 2 solutions possibles:

    • utiliser un constructeur
    • ou initialiser les proprietes directement (seulement disponible pour les version recentes du framework)



    Donc pour la premiere solution la classe SE devient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class S_E 
        {
            public string Statut { get; set; }
            public List<string> Numero{ get; set; }
            public List<string> Descri { get; set; }
     
            public S_E()
    {
    Numero = new  List<string>();
    Descri = new  List<string>();
    }
        }

    Seconde solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class S_E 
        {
            public string Statut { get; set; }
            public List<string> Numero{ get; set; } = new  List<string>();
            public List<string> Descri { get; set; }= new  List<string>();
        }

    Voila, passe un petit peu de temps a lire le principe de constructeur.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2015
    Messages : 18
    Points : 24
    Points
    24
    Par défaut
    Merci, j'ai en effet pas bien compris ces notions, merci pour les solutions !

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Bonjour,

    Tu doit initialiser tes listes Numero et Descri, je te propose de le faire dans le constructeur par défaut de la class S_E (j'ai corrigé cette ligne 'sous_ensemble SE = new sous_ensemble();').
    Sinon quelle est le but du code ? Je ne le voit pas très bien.

    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
    class Program
    {
        static void Main(string[] args)
        {
            GetFonction("StringType");
        }
     
        public static S_E GetFonction(string Val)
        {
            string[] array = new string[] { "zero", "un", "deux" };
            string[] array2 = new string[] { "Desc0", "Desc1", "Desc2" };
            S_E SE = new S_E();
            SE.Statut = "Mon status";//OK
     
            for (int i = 0; i < 3; i++)
            {
                SE.Numero.Add(array[i]);//ici //La référence d'objet n'est pas définie à une instance d'un objet.
                SE.Descri.Add(array2[i]);
            }
            return SE;
        }
    }
    public class S_E
    {
        public string Statut { get; set; }
        public List<string> Numero { get; set; }
        public List<string> Descri { get; set; }
     
        public S_E()
        {
            Numero = new List<string>();
            Descri = new List<string>();
        }
    }

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

Discussions similaires

  1. Collection de component class avec list ?
    Par cristalnet dans le forum Hibernate
    Réponses: 2
    Dernier message: 17/08/2008, 13h48
  2. [Java][Generics]Opération retournant List<MyClass>
    Par ptit-lu dans le forum BOUML
    Réponses: 7
    Dernier message: 30/07/2007, 19h27
  3. Réponses: 8
    Dernier message: 21/04/2007, 16h15
  4. [MySQLi] Classe Session, problèmes Help !
    Par sirbaldur dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/11/2006, 09h43
  5. Aide sur POO :: Classe et liste d'objet
    Par Andry dans le forum Langage
    Réponses: 1
    Dernier message: 23/01/2006, 15h51

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