Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment bien instancier un objet en C#

    27 avril 2021 à 18:51:33

    Dans mon projet actuel j'essaye de bien instancier de multiples  instance d'un même objet avec des paramètre légèrement diffèrent dans une liste. Dans cette objet il y a des listes que j’ai essayer de remplir de différentes façon (via le constructeur par défaut, via Add...). Actuellement ça ressemble à ça.

     Console.WriteLine("Type de tournoi :");
                    typeDeTournoi=Console.ReadLine();
                    Console.WriteLine("Particiants séparer par une virgule:");
                    string ligneLu = Console.ReadLine();
                    List<string> nomParticipants = ligneLu.Split(',').ToList();
                    for (int i=0;i<Math.Floor((double)ligneLu.Length/2)+1;i++)
                    {
                        
                        string pseudo = nomParticipants[i];
                        participants.Add(new Joueur(pseudo) );
                        
                    }
                    foreach(Joueur J in participants)
                    {
                        foreach(string S in nomParticipants)
                        {
                            if (J.nom!=S)
                            {
                                J.allies.Add(S);
                                J.opponent0.Add(S);
                            }
                        }
                    }



    Le problème c'est que je modifie par la suite les listes(allies et opponent0) d'un objets précis et ça modifie tout les listes(allies et opponent0) de tout les objets de la liste(participants)

    • Partager sur Facebook
    • Partager sur Twitter
      29 avril 2021 à 15:08:49

      >bien instancier de multiples  instance d'un même objet

      Ne confondez pas classe et objet, SVP.

      On parle donc d'instance d'un même type/classe, OK ?

      Le comportement que vous donnez est "cohérent" si les listes "allies" et "apponent0" sont des listes statiques, mais vous ne nous donnez pas le code de la classe "Joueur".

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        2 mai 2021 à 12:47:48

        Alors je l’avoue je suis encore trop débutant pour bien saisir la différence entre Classe et Objet je veux bien une explication. J'ai résolut le problème en modifiant mes listes en string.
        • Partager sur Facebook
        • Partager sur Twitter
          3 mai 2021 à 5:10:43

          "Object", c'est un truc bien trop polysémique et fonction de l'interlocuteur pour qu'il soit vraiment utile ici.

          Une classe, c'est un modèle d'instance (d'objet). Une instance est une instanciation d'une classe.

          Si on fait une analogie culinaire, la classe est le moule à gâteau et l'instance est un gâteau.

          "Joueur" est une classe ; mais quand vous faites un "new Joueur(pseudo)", vous créez une instance de la classe Joueur.

          Attention à bien comprendre les choses avant de les utiliser, sinon, vous risquez de grosses déconvenues.

          J'ai l'impression que votre problématique demande une certaine réflexion algorithmique (usage de Design Pattern Repository, classe Entité, etc...) qu'il faut analyser avant de pondre du code.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

          Comment bien instancier un objet en C#

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown