2
請考慮以下示例。事件如何比代表更有力
的Stock
類火災的PriceChanged
事件每 時間的股票的價格變化:
public delegate void PriceChangedHandler (decimal oldPrice,decimal newPrice);
public class Stock
{
string symbol;
decimal price;
public Stock (string symbol) { this.symbol = symbol; }
public event PriceChangedHandler PriceChanged;
public decimal Price
{
get { return price; }
set
{
if (price == value) return; // Exit if nothing has changed
if (PriceChanged != null) // If invocation list not empty,
PriceChanged (price, value); // fire event.
price = value;
}
}
}
如果我們要從我們的例子中,事件的關鍵字,這樣PriceChanged
成爲 普通的委託場,我們的例子會給出相同的結果。然而,Stock
將不太健壯,
我的問題是什麼方式的事件關鍵字使股票更健壯?
+1 Oh jon,你在這裏:)我只是在搜索你的文章鏈接.. –
此外,它改變了一對多/一對一的含義。如果它的唯一代表,它一次只能設置一個功能,而事件可以「激發」很多功能 – ilansch
@ilansch:不,那是不正確的。代表是多播的。所以你可以使用'stock.PriceChanged = firstHandler + secondHandler;' –