Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Accéder un objet depuis un autre objet

Pour mieux comprendre : Ouvrez ^^

    23 avril 2011 à 20:55:52

    Bonjour à tous :)

    Voila mon petit problème :

    J'ai une classe Database, qui est une classe qui me sert à gérer ma base de données.

    Le problème, c'est que je voudrais l'instancier qu'une seule fois. C'est à dire faire un seul objet, et qu'un autre objet puisse accéder à cet objet.

    Je m'explique :

    public partial class Home : Form
        {
            Database db;
            public Home()
            {
                InitializeComponent();
            }
    
            private void Home_Load(object sender, EventArgs e)
            {
                db = new Database();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Event ev = new Event(0);
                Event ev2 = new Event(1);
            }
        }
    

    Voila la classe de ma fenetre principale. Je voudrais que la classe Event puisse accéder à l'objet "db". Donc les 2 objets "ev" et "ev2" doivent pouvoir éxécuter des méthodes de l'objet "db"

    J'espère avoir été compréhensible x)

    Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      23 avril 2011 à 21:27:40

      Si j'comprends bien c'que tu veux, il faut que tu jettes un oeil aux Singletons, cela devrait te convenir.
      • Partager sur Facebook
      • Partager sur Twitter
        24 avril 2011 à 0:45:21

        Tu peux mettre tes fonctions (dans la définition de la classe) en public [type] [fonction]([paramètre(s)]) { ... }
        Par contre l'encapsulation prend tout de suite un coup de pied, enfin moi qui suis pas pour la POO j'ai aucun scrupule tant que mon programme fonctionne :p
        • Partager sur Facebook
        • Partager sur Twitter
        "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
          24 avril 2011 à 1:19:26

          Singleton :

          public class Database
          {
             static Database _instance;
             public static Database Instance
             {
                get
                {
                    return _instance ?? (_instance = new Database());
                }
             }
          }
          


          EDIT : au temps pour moi Orwell
          • Partager sur Facebook
          • Partager sur Twitter
            24 avril 2011 à 8:19:09

            Event, c'est une de tes classes? Parce que si oui, pourquoi ne pas passer ton instance de Database au constructeur de Event?
            • Partager sur Facebook
            • Partager sur Twitter
              24 avril 2011 à 14:52:22

              Citation : Ice_Keese

              Event, c'est une de tes classes? Parce que si oui, pourquoi ne pas passer ton instance de Database au constructeur de Event?


              Je suis étonné que cette solution évidente n'ait pas été proposée en premier... o_O

              @Mangepain: plutôt comme ceci: :-°

              public class Database
              {
                 static Database _instance;
                 public static Instance
                 {
                    get
                    {
                        return _instance ?? instance = new Database();
                    }
                 }
              }
              

              • Partager sur Facebook
              • Partager sur Twitter

              [C#] Accéder un objet depuis un autre objet

              × 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