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 :

Comment créer un objet utilisable partout


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 3
    Par défaut Comment créer un objet utilisable partout
    Bonjour à tous,

    Je suis débutant en C#, et j'ai simplement quelques notions en C et en programmation objet.

    Par exemple je vois comment (de manière très simple) créer une classe "Voiture" avec plusieurs méthodes et réutiliser le tout dans le programme principal (main), du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Voiture maPeugeot = new Voiture("406", 110, "bleue");
    maPeugeot.rouler(540);

    Mais il y a beaucoup de choses que je n'ai pas encore capté, notamment en programmation "Windows"

    En tant qu'utilisateur (de mon programme), j'interagis via une interface et des boutons, donc le code en lui même se retrouve dans les fonctions du type "button1click(..)"

    Mon besoin est de créer l'objet par l'action sur un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Voiture maPeugeot = new Voiture("406", 110, "bleue");
    et de le manipuler ensuite via d'autres boutons :
    Bien entendu si je fais cela, ca ne marche pas, car l'objet maPeugeot n'existe que dans le contexte de la fonction button1click.

    Alors, comment faut-il s'y prendre? Où déclarer/créer l'objet ?

    Merci d'avance !

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 134
    Par défaut
    Tu dois crée ton objet au début, autrement dit dans ta class form.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ....
    using System.Text;
     
    namespace NomDeMonApi
    {
        public partial class Form1 : Form
        {
          Voiture maPeugeot = new Voiture("406", 110, "bleue");
    ....
    Pense à utilisé Public au bon moment surtout, si tu dois l'utilise ta class ailleur.
    J'espère que la notion de "Rien", Public, Protected, Private, sont bien comprise.

    Ps: Si j'ai dit des bêtises corrigé moi.

    Bonne chance

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    il faut déclarer ta variable sur la classe, comme ca elle sera accessible depuis tous les membres de ta classe
    mais tu n'es pas obligé de l'initialiser à ce moment là, le new ne peut etre fait que sur le click si tu as besoin de paramètres de l'interface

    s'il te faut plusieurs voitures tu peux utiliser une collection pour les stocker
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 3
    Par défaut
    Bonjour et Merci pour vos contributions,

    Effectivement comme vous l'avez indiqué je peux créer l'objet "plus haut" et il sera accessible dans les fonctions du type "buttonclick".

    Si on parle de la même chose, ca donne :
    (ah oui j'ai laissé tombé les voitures....)

    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
     
    namespace WindowsFormsApplication1
    {  
     
        public partial class Form1 : Form
        {
            // il faut créer grosseCuve1 à ce niveau pour qu'il soit manipulable dans les fonctions ci dessous.            
            VolumeFerme grosseCuve1 = new VolumeFerme(100000, 1, 300);
     
            public Form1()
            {
                InitializeComponent();
                // Non pertinent ici : VolumeFerme grosseCuve1 = new VolumeFerme(100000, 1, 300);
            }
     
            public void button1_Click(object sender, EventArgs e)
            {
                // On voudrait créer la grosseCuve1 ici mais on ne pourra pas la manipuler dans button2_click
                // Non pertinent ici : VolumeFerme grosseCuve1 = new VolumeFerme(100000, 1, 300);
            }
     
            public void button2_Click(object sender, EventArgs e)
            {  
                ConsoleSimu.AppendText("\n Pression dans cuve1 : " + grosseCuve1.P + ".\n");
            }
    Mais par contre si je ne fais que déclarer grosseCuve1 en début de classe et que je le crée au sein de button1_Click, ca ne marche pas ... c'est normal ca ?

    Bonsoir

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    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
      public partial class Form1 : Form
        {
            // il faut créer grosseCuve1 à ce niveau pour qu'il soit manipulable dans les fonctions ci dessous.            
            VolumeFerme grosseCuve1 ;
     
            public Form1()
            {
                InitializeComponent();
     
            }
     
            public void button1_Click(object sender, EventArgs e)
            {
                grosseCuve1 = new VolumeFerme(100000, 1, 300) ;
            }
     
            public void button2_Click(object sender, EventArgs e)
            {  
                ConsoleSimu.AppendText("\n Pression dans cuve1 : " + grosseCuve1.P + ".\n");
            }
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 3
    Par défaut
    Merci Pol63,

    C'est bien ce que j'avais voulu faire, mais visiblement j'ai dû faire une erreur...

    Bref ca répond donc à ma question initiale....

    Mais maintenant si je veux que ce soit réellement l'utilisateur qui crée les objets (en gros autant d'objets que de clics), est-ce qu'il faut que je suive la piste de la "collection" ? Ou faut il carrément s'y prendre autrement ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/08/2008, 09h12
  2. Réponses: 2
    Dernier message: 30/01/2007, 09h02
  3. Réponses: 3
    Dernier message: 30/01/2007, 09h01
  4. Comment créer une base utilisable sur PC sans ACCESS
    Par lesalloues dans le forum Runtime
    Réponses: 4
    Dernier message: 22/08/2006, 14h52
  5. [VB6] Comment créer un objet TRIANGLE
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 17/05/2006, 16h15

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