2011-03-26 48 views

回答

11

你應該在C#中使用屬性,那麼你可以添加任何處理您的二傳手希望(日誌記錄,觸發事件,...)

private Boolean _boolValue 
public Boolean BoolValue 
{ 
    get { return _boolValue; } 
    set 
    { 
     _boolValue = value; 
     // trigger event (you could even compare the new value to 
     // the old one and trigger it when the value really changed) 
    } 
} 
+0

嗯我迷路了。你能舉一個例子讓我去嗎? – brux 2011-03-26 22:25:42

+0

謝謝我現在正在測試這個 – brux 2011-03-26 22:27:36

+0

完成:-)屬性在許多方面都非常好。我會敦促你總是將它們用於公共數據(而不是成員)。這使得更改或添加更容易,您可以在界面中指定它們,這是成員無法做到的...... – jdehaan 2011-03-26 22:27:42

5

手動,是的,你可以

public delegate void SomeBoolChangedEvent(); 
public event SomeBoolChangedEvent SomeBoolChanged; 

private bool someBool; 
public bool SomeBool 
{ 
    get 
    { 
     return someBool; 
    } 
    set 
    { 
     someBool = value; 
     if (SomeBoolChanged != null) 
     { 
      SomeBoolChanged(); 
     } 
    } 
} 

不知道如果這是你在找什麼。

5

這裏的重要問題是:何時bool什麼變化?

由於bool是一種值類型,您無法直接傳遞對它的引用。所以說說Changed事件本身就是Changed事件沒有任何意義 - 如果bool發生變化,那麼替換爲另一個bool,而不是修改。

如果我們正在談論引用類型上的bool字段或屬性,圖片會發生變化。在這種情況下,公認的做法是將bool作爲一個財產(公共領域被忽視)和use the INotifyPropertyChanged.PropertyChanged event來提出「更改」通知。