simplificando inotifypropertychanged implementación en c#
inotifypropertychanged
es esencial para la vinculación de datos y las notificaciones de cambio de propiedad, pero la implementación manual puede ser engorrosa. Mientras que una sintaxis simplificada como {get; colocar; notificar;}
sería ideal, no está integrado en C#. Exploremos formas de optimizar el proceso.
Un enfoque involucra una clase base con un método genérico 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
}
Esto reduce la declaración de declaración de propiedad. C# 5's callermemberName
atributo simplifica aún más:
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 y posterior ofrece mejoras adicionales para un código aún más conciso.
automatizar la generación de código
Para la automatización completa, considere herramientas como PropertyChanged.fody
. Mientras se requiere una dependencia externa, elimina el evento Manual PropertyChanged
. Esta es una opción poderosa para proyectos más grandes. La elección entre la optimización manual (usando una clase base) y la generación de código automatizado depende del tamaño del proyecto y la preferencia para las dependencias externas.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3