Bonjour,
J'ai une question qui me turlupine et je ne trouve pas réponse...
Afin de passer un objet créer dans une classe vers une autre classe, j'ai du passé toutes mes classes en "public" car sinon VS me disait "Accessibilité incohérente : le type de paramètre ... est moins accessible..."
Par contre on m'a toujours dit pour la sécurité du code qu'il faut essayer de mettre le moins de code en "public", dans mon cas j'ai du passer la moitié de mes classes en public...
Je vous mets mon bout de code pour plus de clarté car j'ai surement fait une erreur de débutant ;-)
Je crée ici une référence de l'objet de la classe Concours pour l'envoyer à la form "ParametreConcours" pour que celle-ci me remplisse l'objet et que je puisse l'intégrer dans ma collection par la suite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 private void BUTTON_Nouveau_Click(object sender, EventArgs e) { // Ouvrir la fenêtre de création d'un nouveau concours Concours concours = new Concours(); ParametreConcours creerConcours = new ParametreConcours("Création d'un concours", ref concours); if (creerConcours.ShowDialog() == DialogResult.OK) { // Intégrer le nouveau concours listConcours.Add(concours); // Recharger la liste des concours this.Charger_Grid(); } }
Ici c'est le constructeur de la fenêtre "ParametreConcours", je récupère l'objet "concours" pour pouvoir le modifier dans cette fenêtre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public ParametreConcours(string nomForm, ref Concours concours) { // Initialisation de la fenêtre InitializeComponent(); InitForm(nomForm); _concours = concours; }
Le soucis est donc que j'ai du mettre la classe Concours à public car sinon j'avais l'erreur cité au début...
N'hésitez pas à me dire s'il y a une meilleur solution.
Je vous remercie d'avance.
Partager