упрощение INOTIFYPROPERTYCHANGED реализация в C#
] inotifypropertychanged
необходим для уведомлений о привязке и изменении свойств, но ручная реализация может быть громоздкой. В то время как упрощенный синтаксис, такой как {get; набор; notify;}
было бы идеальным, он не встроен в C#. Давайте рассмотрим способы оптимизации процесса.
один подход включает в себя базовый класс с Generic setfield
метод:
public class Data : INotifyPropertyChanged
{
protected virtual void OnPropertyChanged(string propertyName);
protected bool SetField(ref T field, T value, string propertyName);
public string Name
{
get { return name; }
set { SetField(ref name, value, "Name"); }
}
// ... other properties
}
это уменьшает объявление свойства Coalerplate. C# 5's callermemberName
атрибут Дополнительное упрощает это:
protected bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null);
public string Name
{
get { return name; }
set { SetField(ref name, value); }
}
C# 6, а затем предлагает дополнительные улучшения для еще более краткого кода.
]] Автоматизация кода Generation
для полной автоматизации рассмотрите такие инструменты, как PropertyChanged.fody
. Требуя внешнюю зависимость, он исключает ручное PropertyChanged
полностью поднятие событий. Это мощный вариант для более крупных проектов. Выбор между ручной оптимизацией (с использованием базового класса) и автоматической генерацией кода зависит от размера проекта и предпочтения для внешних зависимостей.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3