次の例を考えてみましょう。
この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;
}
}
}
この例から event キーワードを削除してPriceChanged
通常のデリゲート フィールドにすると、この例では同じ結果が得られます。ただし、Stock
堅牢性は低くなりますが、
私の質問は、イベント キーワードがどのように株をより堅固にするのかということです。