我可以設置一個事件偵聽器,以便當一個布爾改變一個函數被調用?c#bool.change事件
6
A
回答
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)
}
}
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();
}
}
}
不知道如果這是你在找什麼。
4
研究實施INotifyPropertyChanged。 MSDN has got a great How To on the subject
5
這裏的重要問題是:何時bool
什麼變化?
由於bool
是一種值類型,您無法直接傳遞對它的引用。所以說說Changed
事件本身就是Changed
事件沒有任何意義 - 如果bool
發生變化,那麼被替換爲另一個bool
,而不是修改。
如果我們正在談論引用類型上的bool
字段或屬性,圖片會發生變化。在這種情況下,公認的做法是將bool
作爲一個財產(公共領域被忽視)和use the INotifyPropertyChanged.PropertyChanged
event來提出「更改」通知。
相關問題
- 1. C#組件事件?
- 2. C++事件庫
- 3. C#從事件
- 4. 事件在C#
- 5. c#clickonce事件?
- 6. C#CheckedListBox.ItemCheck事件
- 7. C++到C#事件處理
- 8. 從C++調用C#事件
- 9. C#處理多個事件的事件
- 10. C#事件和事件處理程序
- 11. C#從父事件創建子事件
- 12. C#卸載事件
- 13. C#添加事件!
- 14. 事件不叫C#
- 15. C#Async WebRequests:OnComplete事件
- 16. C#事件訂閱
- 17. TreeNode SelectNodeChanged事件c#
- 18. Outlook Addin事件C#
- 19. C++ cin keypress事件
- 20. 寫事件在C#
- 21. C#事件冒泡
- 22. C#事件問題
- 23. COM事件在C++
- 24. C#訂閱事件
- 25. C#radiobutton keydown事件
- 26. C#引發事件
- 27. TextBox_TextChanged事件在C#
- 28. C#處理事件
- 29. 分離事件(C#)
- 30. C#事件繼承
嗯我迷路了。你能舉一個例子讓我去嗎? – brux 2011-03-26 22:25:42
謝謝我現在正在測試這個 – brux 2011-03-26 22:27:36
完成:-)屬性在許多方面都非常好。我會敦促你總是將它們用於公共數據(而不是成員)。這使得更改或添加更容易,您可以在界面中指定它們,這是成員無法做到的...... – jdehaan 2011-03-26 22:27:42