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 :

Quel est l'utilité d'une classe dans mon programme?


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 97
    Points : 68
    Points
    68
    Par défaut Quel est l'utilité d'une classe dans mon programme?
    Bonjour à tous,

    Je dois réaliser un programme dans lequel il faut entrer son nom, prénom, date de naissance, état civil,... dans des txtBox puis les enregistrer dans un fichier texte. J'ai d'abord du faire ça sans utiliser de classe ensuite en utilisant le système de classe. Mais est-ce nécessaire d'utiliser une classe? Voici la manière que j'ai fait avec la classe. J'ai fait ça dans un nouvel élément classe (sous microsoft c# 2010). Mais pour tous mes txtBox et label ça indique comme erreur
    n'existe pas dans le contexte actuel.
    C'est dû à quoi? Je me suis démerdé à faire ce programme avec l'aide d'internet donc soyez indulgent :-) merci

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     class Personne
        {
            private string Nom;
            private string Prenom;
            private DateTime DateNaiss;
            private Boolean Genre;
            private string EtatCivil;
            private string Adresse;
            private int TelFixe;
            private int TelPort;
            private int TelProf;
     
            public Personne(string Nom,string Prenom, DateTime DateNaiss, Boolean Genre, string EtatCivil, string Adresse, int TelFixe, int TelPort, int TelProf)
            {
                this.Nom = Nom;
                this.Prenom = Prenom;
                this.DateNaiss = DateNaiss;
                this.Genre = Genre;
                this.EtatCivil = EtatCivil;
                this.Adresse = Adresse;
                this.TelFixe = TelFixe;
                this.TelPort = TelPort;
                this.TelProf = TelProf;
            }
     
            public void Print()
            {
                FileStream fs = new FileStream("c:\\InfoUtilisateur.txt", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write);
                fs.Close();
                StreamWriter sw = new StreamWriter("c:\\InfoUtilisateur.txt", true, Encoding.ASCII);
                sw.WriteLine(lbNom.Text + "     ",Nom);
                sw.WriteLine(lbPrenom.Text + "     ",Prenom);
                sw.WriteLine(lbDateNaiss.Text + "     ",DateNaiss);
                sw.WriteLine(lbSexe.Text + "     ",Genre);
                sw.WriteLine(lbEtatCiv.Text + "     ",EtatCivil);
                sw.WriteLine(lbAdress.Text + "     ",Adresse);
                sw.WriteLine(lbTelFixe.Text + "     ",TelFixe);
                sw.WriteLine(lbTelPort.Text + "     ",TelPort);
                sw.WriteLine(lbTelProf.Text + "     ", TelProf);
                sw.Close();
            }
     
            public void Affiche()
            {
                Personne p1 = new Personne(txtBoxNom.Text, txtBoxPrenom.Text, maskedTextBoxDateNaiss.Text, cmbBoxSexe.Text, txtBoxEtatCiv.Text, txtBoxAdress.Text, txtBoxTelFixe.Text, txtBoxTelPort.Text, txtBoxTelProf.Text);
                p1.Print();
            }
     
        }

  2. #2
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 386
    Points
    386
    Par défaut
    tu peux me donner le code tu ecrire dans l'appelle du cette classe et copy du erreur ?

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 69
    Points : 65
    Points
    65
    Par défaut
    precede tous les nom de tes textBox par le nom de ton programe . ou bien fait un using de namespace de programme .

  4. #4
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 386
    Points
    386
    Par défaut
    il faut creer un instance de type class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Personne p=new Personne(.......,..............,................);
    c'est quoi l'erreur que tu as et quel est le code associé à l'erreur ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Points : 560
    Points
    560
    Par défaut
    Si je ne me trompes pas certaines propriétés de ta classe sont des int, or tu passe un String dans le constructeur (TextBox.Text )

    Tu dois parser le String en Int, tu peux le faire via : Int32.Parse(tonString)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    Ton erreur est là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sw.WriteLine(lbTelFixe.Text + "     ", TelFixe);
    Ta classe ne connait pas tes label. Car ceux-ci sont dans ta form

    Remplace tes label par des string comme ça :
    lbNom.Text par "Nom"
    lbPrenom.Text par "Prénom"
    etc.

    Tout le monde commence à quelque part. Les classes c'est le début d'une bonne programmation.

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    Oui il est nécessaire de passer par des classes. C'est même obligatoire.
    C# est un language objet, ne pas l'utiliser comme ca serait une erreur. D'ailleurs tu utilises des objets sans le savoir, tes forms sont des objets, tes textbox sont des objets, tout n'est qu'objet!

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 97
    Points : 68
    Points
    68
    Par défaut
    Dans ma form1 j'ai ça comme code:

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
     
    namespace Exercice3
    {
        public partial class FormMenuPrincipal : Form
        {
            public FormMenuPrincipal()
            {
                InitializeComponent();
                cmbBoxSexe.Items.Add("H");
                cmbBoxSexe.Items.Add("F");
                cmbBoxSexe.SelectedItem = cmbBoxSexe.Items;
            }
     
     
            private void Form1_Load(object sender, EventArgs e)
            {
                string Nom = txtBoxNom.Text;
     
     
            }
     
            private void btnQuit_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }
     
            private void btnEnregistr_Click(object sender, EventArgs e)
            {
                FileStream fs = new FileStream("c:\\InfoUtilisateur.txt", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write);
                fs.Close();
                StreamWriter sw = new StreamWriter("c:\\InfoUtilisateur.txt", true, Encoding.ASCII);
     
                sw.WriteLine(lbNom.Text + "     " + txtBoxNom.Text);
                sw.WriteLine(lbPrenom.Text + "     " + txtBoxPrenom.Text);
                sw.WriteLine(lbDateNaiss.Text + "     " + maskedTextBoxDateNaiss.Text);
                sw.WriteLine(lbSexe.Text + "     " + cmbBoxSexe.Text);
                sw.WriteLine(lbEtatCiv.Text + "     " + txtBoxEtatCiv.Text);
                sw.WriteLine(lbAdress.Text + "     " + txtBoxAdress.Text);
                sw.WriteLine(lbTelFixe.Text + "     " + txtBoxTelFixe.Text);
                sw.WriteLine(lbTelPort.Text + "     " + txtBoxTelPort.Text);
                sw.WriteLine(lbTelProf.Text + "     " + txtBoxTelProf.Text);
                sw.Close();
            }
     
            private void btnNouvUtili_Click(object sender, EventArgs e)
            {
                FormNouvUtili frm = new FormNouvUtili();
                frm.Show();
            }
     
            private void btnAPropos_Click(object sender, EventArgs e)
            {
                FormAPropos frm = new FormAPropos();
                frm.Show();
            }
        }
    }
    Mais je dois supprimer le code qui se trouve dans btnEnregistr_Click et faire appel à ma classe Personne avec ce bouton enregistrer mais je sais pas comment on fait.

    Les erreurs que j'ai obtenu pour mes txt Box et mes labels sont en pièce jointe. Ce sont toutes les mêmes erreurs.
    Images attachées Images attachées  

  9. #9
    Membre habitué

    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Mars 2011
    Messages : 115
    Points : 188
    Points
    188
    Par défaut Reponse au Question
    Tu doit étudier la programmation Orienté Objet pour que tu puisse connaitre vraiment l'utilisation d'une classe, mais sachez bien que la base de toute les langages actuels.

  10. #10
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Quand tu crée ton objet dans ton programme tu lui passe tous tes textBox? (ce que je crois comprendre avec tes paramêtres)
    Si oui, ta méthod Print devrait donc écrire dans le fichier text les variables de ton objet et non les textBox puisqu'il ne les vois pas.

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 97
    Points : 68
    Points
    68
    Par défaut
    ok ok merci

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

Discussions similaires

  1. Quel est l'utiliter d'une page google12345a1234a12345.html
    Par goldor dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/03/2009, 06h54
  2. Appelé une class dans le programme main
    Par nistelsof dans le forum Langage
    Réponses: 28
    Dernier message: 06/06/2007, 09h12
  3. Réponses: 5
    Dernier message: 04/10/2006, 15h45
  4. importer une classe dans mon projet
    Par dietrich dans le forum Delphi
    Réponses: 1
    Dernier message: 17/07/2006, 09h57
  5. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52

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