INotifyPropertyChanged property name - hardcode vs reflection?

前端 未结 16 1602
感动是毒
感动是毒 2020-11-28 05:13

What is the best way to specify a property name when using INotifyPropertyChanged?

Most examples hardcode the property name as an argument on the PropertyChanged E

16条回答
  •  醉话见心
    2020-11-28 05:39

    In .NET 4.5 (C# 5.0) there is a new attribute called - CallerMemberName it helps avoid hardcoded property names preventing the onset of bugs if developers decide to change a property name, here's an example:

    public event PropertyChangedEventHandler PropertyChanged = delegate { };
    
    public void OnPropertyChanged([CallerMemberName]string propertyName="")
    {
        PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
    
    private string name;
    public string Name
    {
        get { return name; }
        set 
        { 
            name = value;
            OnPropertyChanged();
        }
    }
    

提交回复
热议问题