Обертывание установщика свойств

Я нахожу, что много повторяюсь, и это, конечно, нехорошо. Поэтому я задавался вопросом, могу ли я что-то с этим сделать. Это обычный код в моем WPF-приложении:

private string _name;
public string Name
{
    get { return _name; }
    set
    {
        if (_name != value)
        {
            _name = value;
            OnPropertyChanged("Name");
        }
    }
}

Поэтому мне было интересно, могу ли я каким-то образом обернуть сеттер, чтобы сделать его лучше и читабельнее. Одна из идей была примерно такой:

protected void PropertySetter<T>(T property, T value, string name)
{
    if (EqualityComparer<T>.Default.Equals(property, value))
    {
        property = value;
        OnPropertyChanged(name);
    }
}

Пример использования:

private string _name2;
public string Name2
{
    get { return _name2; }
    set
    {
        PropertySetter<string>(Name2, value, "Name2");
    }
}

Но я не уверен, что это действительно разумно и будет ли работать с типами Value?

Думаю, я не первый, кто пытается сделать что-то подобное, поэтому, если кто-то знает хороший надежный способ сделать что-то подобное, пожалуйста, откликнитесь. Думаю, я не смог бы сделать свойство propertyChanged безопасным без размышлений, но любые идеи также помочь.

6
задан Ingó Vals 18 June 2012 в 15:57
поделиться