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 :

evenement c# variable


Sujet :

C#

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Par défaut evenement c# variable
    bonjour =p

    jai un petit soucis sur un de mes programme. j'essaie de detecter automatiquement le changement d'une variable. voila mon 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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Diagnostics;
     
    namespace ConsoleApplication2
    {
        class Program
        {
            private string touche;
     
            static void Main(string[] args)
            { 
                touche = Console.ReadLine(); // valeur tapée par l'utilisateur.
                this.Valeur = touche; // le probleme est la
            }
     
     
            // Ma Fonction
            private void DoSomething()
            {
                Console.WriteLine("a");  // Action a exécuter chaque fois que la valeur change
            }
     
            public string Valeur
            {
     
                get
                {
                    return gt.Exgt.Line; //ma valeur que j recupere dans un autre projet
                }
     
                set
                {
                    // Controle de la nouvelle valeur      
                    gt.Exgt.Line = value;
     
                    // lance la fonction.
                    if (value != null)
                    {
                        DoSomething();
                    }
                }
     
            }
        }
    }
    Donc mon probleme c'est que j'ai l'erreur suivante sur le "this" et "touche" dans mon main :
    -Error 2 Keyword 'this' is not valid in a static property, static method, or static field initializer
    -Error 1 An object reference is required for the non-static field, method, or property

    si quelqun a une idée =)

  2. #2
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Ben oui ta methode main est static elle n'a donc pas de visibilité des proprietes de ta classe Program !

  3. #3
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Tout a fait. Pour le dire autrement, Main est static, c'est donc une méthode de classe et pas d'instance de classe. Donc this n'a aucun sens dans ce contexte.

  4. #4
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Par défaut
    en lisant le message d'erreur je l'ai remarquer mais mais comment je peut éxecuter mon programme alors car si je supprime static ou si je met private a la place, j'ai se message d'erreur : does not contain a static 'Main' method suitable for an entry point ConsoleApplication2

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Depuis ton main tu instancie une classe qui fait le boulot !

  6. #6
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour lavezi

    La methode main etant static il faut utiliser un class "sous trainant" que yu instancieras dans main dont la portee est locale à main.

    code behind du projet "gt" exemple:

    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
     
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace WinGT
    {
        public class GT
        {
            public GT()
            {
                Line = "something";
            }
     
            public string Line { get; set; }
     
     
        }
    }
    code du console app:
    [/CODE]
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using WinGT;
    namespace ConsoleApplication1
    {
    class Program
    {


    static void Main(string[] args)
    {
    //à declarer et instancier dans main
    SousTraitant st=new SousTraitant();
    }

    }
    // un class sous traitant
    class SousTraitant
    {
    private string touche;
    private GT myGt = new GT();
    public SousTraitant()
    {

    touche = Console.ReadLine(); // valeur tapée par l'utilisateur.
    this.Valeur = touche; // le probleme est la
    Console.ReadLine();
    }
    // Ma Fonction
    private void DoSomething()
    {
    Console.WriteLine("a"); // Action a exécuter chaque fois que la valeur change
    }

    public string Valeur
    {

    get
    {
    return myGt.Line; //ma valeur que j recupere dans un autre projet
    }

    set
    {
    // Controle de la nouvelle valeur
    myGt.Line = value;

    // lance la fonction.
    if (value != null)
    {
    this.DoSomething();
    }
    }
    }
    }
    }


    [CODE]
    bon code.....

  7. #7
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Par défaut
    ok mais je comprend pas comment je peut utiliser mon this.Valeur dans ma class.

  8. #8
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Bonsoir Lavezi bonsoir Mabrouki

    Je pense que Mabrouki a oublié certaines balises CODE pour rendre la chose plus lisible

    Mabrouki à déplacé ta propriété Valeur dans la classe SouTraitant

    this. represente donc l'instance de SousTraitant

  9. #9
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Bonjour BinKentsu


    C'est curieux !
    Tu ignore completement la BONNE solution déja donnée par Mabrouki

    Et tu en propose une autre MAUVAISE qui reproduit exactement la meme erreur

    Ton instance de traitement ne sera pas visible dans le main !

  10. #10
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Bonjour BinKensu

    Je n'e m'acharne certainement pas mais je pense qu'il est utile de formuler que la solution que tu propose est mauvaise

    Et pour reprendre tes propos, tu aurais aussi pu avoir la décence

    1- De bien lire la proposition de Mabrouki et la comprendre
    2- De faire l'effort tester ta proposition et comprendre pourquoi elle est mauvaise

    Avant de balancer quelque chose qui ne sert a rien et qui ne va pas aider lavezi

    C'est aussi comme ca qu'on apprends ......

  11. #11
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par BinKentsu Voir le message
    olibara, il y a bien écrit que je suis apprenti en dessous de mon pseudo non?
    Oui, et ça c'est pas un problème.

    En revanche, tu as, à plusieurs reprises et sur plusieurs sujets, posté des réponses complétement à coté de la plaque et la c'en est une.

    Quand quelqu'un pose une question, il attend une réponse susceptible de l'aider.

    Donc, quand on connait la réponse on essaye de lui fournir.
    Quand on ne la connait pas, on évite de lui donner une réponse fumeuse qui va lui faire perdre du temps.

    Donc arrêtez de vous acharnez sur moi, on est ici pour s'entre-aider
    Justement, les gens qui posent des questions attendent des réponses utiles, pas des voies d'exploration farfelues.

    Que tu ne comprennes pas une réponse fournie, c'est légitime, mais dans ce cas pose la question pour avoir une explication, tu peux être sur qu'on te répondra; mais évite de répondre systématiquement n'importe quoi à ceux qui posent des questions.

Discussions similaires

  1. [Prototype] [POO] Evénement et variables
    Par kimcharlene dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 05/09/2007, 14h59
  2. evenement, MAJ Variable Active X
    Par Hypollite76 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 01/08/2007, 15h04
  3. Envoyer une variable sur l'evenement onmove
    Par nabab dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/07/2007, 16h26
  4. Evenement d'une variable
    Par franco263 dans le forum C++Builder
    Réponses: 5
    Dernier message: 27/06/2007, 13h16
  5. Variable evenement
    Par Drahl dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/04/2005, 14h37

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