Widziałem następujące wzór używany do realizacji INotifyPropertyChangedWzór do implementacji INotifyPropertyChanged?
private void NotifyPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
Czy ktoś może mi wyjaśnić konieczność obsługi var = PropertyChanged zadanie przed sprawdzeniem go zerowa w porównaniu bezpośrednio sprawdzanie PropertyChanged == null bezpośrednio?
Dzięki
możliwy duplikat [Dlaczego C# wymaga napisania zerowej kontroli za każdym razem, gdy uruchamiasz zdarzenie ?] (http://stackoverflow.com/questions/3102918/why-does-c-require-you-to-write-a-null-check-every-time-you-fire-an-event) – decyclone
@decyclone , to nie jest dupe ... OP nie pyta, dlaczego musisz sprawdzić, czy program obsługi ma wartość null, ale dlaczego musisz użyć lokalnej kopii programu obsługi. –
Czy ten wzorzec jest konieczny dla VB.NET? A może RaiseEvent sobie z tym poradzi? – MCattle