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 :

Méthode n'est pas valide dans le contexte donné [Débutant]


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Méthode n'est pas valide dans le contexte donné
    Bonjour à tous,

    J'ai un programme qui doit écrire dans un fichier texte selon ce que l'on rentre dans les textbox d'une IHM.
    Voici le 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
    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 GénérationCDR
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                dateTimePickerD.Format = DateTimePickerFormat.Custom;
                dateTimePickerD.CustomFormat = "yyyyMMdd";
                dateTimePickerH.Format = DateTimePickerFormat.Custom;
                dateTimePickerH.CustomFormat = "HHmmss";
                
            }
    
            private void buttonQuitter_Click(object sender, EventArgs e)
            {
                Environment.Exit(0);
            }
    
            private void buttonGene_Click(object sender, EventArgs e)
            {
                StreamWriter Fichier = new StreamWriter("C:\\Users\\______\\test.txt", true);        
                //Fichier.WriteLine(nblignes);
                ClassGenerer obj1 = new ClassGenerer(Convert.ToInt32(textBoxNbCDR.Text), Convert.ToInt32(textBoxDuree.Text), Convert.ToInt32(textBoxNum1.Text), Convert.ToInt32(textBoxNum2.Text), Convert.ToInt32(dateTimePickerD.Text), Convert.ToInt32(dateTimePickerH.Text));
                Fichier.WriteLine(obj1.getnbligne + obj1.getduréeappel + obj1.getnumappelant + obj1.getnumappelé + obj1.getdateappel + obj1.getheureappel);
                MessageBox.Show("Le fichier a bien été généré !", "Génération");
                Fichier.Close();
            
            }
        }
    }
    Et le code de la classe :
    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace GénérationCDR
    {
        class ClassGenerer
        {
            //Attributs
            private int c_nblignes, c_duréeappel, c_numappelant, c_numappelé;
            private int c_dateappel, c_heureappel;
            //private string c_cdrid;
     
            //Constructeur
            public ClassGenerer(int nblignes, int duréeappel, int numappelant, int numappelé, int dateappel, int heureappel)
            {
                //c_cdrid = cdrid;
                c_nblignes = nblignes;
                c_duréeappel = duréeappel;
                c_numappelant = numappelant;
                c_numappelé = numappelé;
                c_dateappel = dateappel;
                c_heureappel = heureappel;
            }
     
            //Accesseurs
            public int getnbligne(int unNbLignes)
            {
                return c_nblignes;
            }
     
            public int getduréeappel(int uneDuréeAppel)
            {
                return c_duréeappel;
            }
     
            public int getnumappelant(int unNumAppelant)
            {
                return c_numappelant;
            }
     
            public int getnumappelé(int unNumAppelé)
            {
                return c_numappelé;
            }
     
            public int getdateappel(int uneDateAppel)
            {
                return c_dateappel;
            }
     
            public int getheureappel(int uneheureappel)
            {
                return c_heureappel;
            }
        }
    }
    La ligne en rouge pose problème, le message d'erreur étant : Erreur 1 L'opérateur '+' ne peut pas être appliqué aux opérandes de type 'groupe de méthodes' et 'groupe de méthodes' C:\Users\____\Form1.cs 37 31 ProjGénérationCDR

    Je suis sûr que c'est une erreur absolument débile mais bon !

    Merci d'avance !

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    Bonjour

    Tu appelles comme méthodes comme si c'était des propriétés (donc sans () après le nom) .
    Ca ne peut pas marcher.

    Accessoirement, on ne voir pas l’intérêt d'une méthode qui se contente de retourner son paramètre : on a un peu de mal à comprendre ce que tu as voulu faire.

    Quand on voit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public int getheureappel(int uneheureappel)
            {
                return c_heureappel;
            }
    on se demande à quoi ça peut servir :
    - le paramètre ne sert à rien.
    - une méthode qui retourne juste une variable membre, sans traitement d'aucune sorte, il est préférable de la remplacer par une propriété (le cas contraire est la signature de l'ex dev Java qui a mal digéré sa conversion et qui continue à utiliser des "getter" et des "setter").

    Je pense que tu voulais faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public int heureappel
    {
      get
         {
               return c_heureappel;
         }
    }
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    En fait, je veux écrire une ligne dans un fichier .txt en fonction des valeurs des textbox, c'est ce que j'ai essayé de faire...
    Et oui ce sont des méthodes, j'ai oublié les () en effet...

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par Blodsvept Voir le message
    Bonjour,

    En fait, je veux écrire une ligne dans un fichier .txt en fonction des valeurs des textbox, c'est ce que j'ai essayé de faire...
    Et oui ce sont des méthodes, j'ai oublié les () en effet...
    J'ai édité mon message; relis le. Ce sont des méthodes mais qui n'ont pas de sens.
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Oui en effet ça n'a pas de sens...
    J'ai essayé ton code, visual studio m'affiche plusieurs erreurs dessus.

    Ce que j'ai voulu faire dans ces deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ClassGenerer obj1 = new ClassGenerer(Convert.ToInt32(textBoxDuree.Text), Convert.ToInt32(textBoxNum1.Text), Convert.ToInt32(textBoxNum2.Text), Convert.ToInt32(dateTimePickerD.Text), Convert.ToInt32(dateTimePickerH.Text));
                Fichier.WriteLine(obj1.getduréeappel + obj1.getnumappelant + obj1.getnumappelé + obj1.getdateappel + obj1.getheureappel);
    C'était de récupérer les valeurs de mes textbox et de les écrire dans "Fichier" mais je dois avouer que je me suis perdu en route...

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par Blodsvept Voir le message
    Ce que j'ai voulu faire dans ces deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ClassGenerer obj1 = new ClassGenerer(Convert.ToInt32(textBoxDuree.Text), Convert.ToInt32(textBoxNum1.Text), Convert.ToInt32(textBoxNum2.Text), Convert.ToInt32(dateTimePickerD.Text), Convert.ToInt32(dateTimePickerH.Text));
                Fichier.WriteLine(obj1.getduréeappel + obj1.getnumappelant + obj1.getnumappelé + obj1.getdateappel + obj1.getheureappel);
    C'était de récupérer les valeurs de mes textbox et de les écrire dans "Fichier" mais je dois avouer que je me suis perdu en route...
    Non dans le fichier tu écris la somme des valeurs, car tu les additionnes (si tu appelles les méthodes correctement - méthodes qui devraient être remplacée par des propriétés), je doute fort que ce soit ce que tu veux faire.
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    C'est ce que je veux faire mais je n'y arrive pas c'est ça le truc...

  8. #8
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par Blodsvept Voir le message
    C'est ce que je veux faire mais je n'y arrive pas c'est ça le truc...
    Dans quel format veux tu écrire dans ton fichier ?
    Une valeur par ligne ? les valeur concaténée avec une séparation ?

    Merci de préciser ce que tu attends dans le fichier, on est pas devin.
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Oui, les valeurs concaténées avec ";" comme séparateur entre chaque donnée !

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    C'est bon j'ai fini par comprendre !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Fichier.WriteLine(obj1.getduréeappel() + "; " + obj1.getnumappelant() + "; " + obj1.getnumappelé() + "; " + obj1.getdateappel() + "; " + obj1.getheureappel() + ";");
    et

    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
    public int getduréeappel()
            {
                return c_duréeappel;
            }
     
            public int getnumappelant()
            {
                return c_numappelant;
            }
     
            public int getnumappelé()
            {
                return c_numappelé;
            }
     
            public int getdateappel()
            {
                return c_dateappel;
            }
     
            public int getheureappel()
            {
                return c_heureappel;
            }
    Merci à toi François pour l'aide !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/03/2015, 17h02
  2. Réponses: 4
    Dernier message: 10/04/2014, 20h10
  3. Réponses: 7
    Dernier message: 25/01/2012, 11h29
  4. 'Me' n'est pas valide dans un module
    Par steakos78 dans le forum VB.NET
    Réponses: 5
    Dernier message: 26/01/2011, 16h13
  5. Réponses: 2
    Dernier message: 26/06/2008, 21h20

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