125 votes

Comment déclencher un événement lorsque la valeur d'une variable est modifiée ?

Je suis en train de créer une application en C# à l'aide de Visual Studio. Je veux créer du code pour que, lorsqu'une variable a la valeur 1, un certain morceau de code soit exécuté. Je sais que je peux utiliser une instruction if, mais le problème est que la valeur sera modifiée dans un processus asynchrone et que, techniquement, l'instruction if pourrait être ignorée avant que la valeur ait changé.

Est-il possible de créer un gestionnaire d'événement de sorte que lorsque la valeur de la variable change, un événement soit déclenché ? Si oui, comment puis-je le faire ?

Il est tout à fait possible que j'aie mal compris le fonctionnement d'une instruction if ! Toute aide serait la bienvenue.

1 votes

Pour être clair, observer le changement d'une variable n'est possible que pour une variable que vous possédez (ou qui est déjà liée à IObservable/INotifyPropertyChanged/Event). Vous ne pouvez pas observer le changement d'une variable système si elle n'a pas été conçue pour être observée.

1voto

Une méthode simple consiste à utiliser les fonctions get et set sur la variable

    using System;
    public string Name{
    get{
     return name;
    }

    set{
     name= value;
     OnVarChange?.Invoke();
    }
    }
    private string name;

    public event System.Action OnVarChange;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X