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#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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.

  7. #7
    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.....

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