2010-02-15 4 views
0

J'ai une chaîne de champ dans struct, et je veux apprendre apprendre en temps réel a changé ce champ.listener C# like java

struct example { 
public string ex; 
} 

examp = new example();<BR> 
examp.ex = "test"; 

////// then program work and eamp.ex = "bing"; 

J'ai besoin méthode

on_ex_changed() 
{ 
    if examp.ex changed then ..... 
} 

en ligne et plz simples

+0

Vous pouvez jeter un oeil sur la façon dont les événements fonctionnent en .Net: http://msdn.microsoft.com/en-us/library/awbftdfh.aspx – jmservera

Répondre

4

Vous pouvez mettre un événement au setter comme suit. L'événement sera déclenché à chaque appel du setter.

public class MyObj 
{ 
    private RectangleF mRectangle; 

    public event EventHandler RectangleChanged; 

    public RectangleF Rectangle 
    { 
     get 
     { 
      return mRectangle; 
     } 

     set 
     { 
      mRectangle = value; 
      OnRectangleChanged(); 
     } 
    } 

    protected virtual void OnRectangleChanged() 
    { 
     if (RectangleChanged != null) 
     { 
      RectangleChanged(this, EventArgs.Empty); 
     } 
    } 
} 
+0

mais je sais quand Dond RectangleChanged .. – basvas

+0

basvas: il change quand le setter de la propriété est appelé, donc vous savez. –

+0

où écrire que Rectangle a changé? void virtuel protégé OnRectangleChanged() { if (RectangleChanged! = Null) { RectangleChanged (this, EventArgs.Empty); Console.WriteLine ("ee"); // ne fonctionne pas } } – basvas