تبسيط تطبيق inotifyPropertyChanged في C#
inotifyPropertyChanged
ضروري لإخطارات ربط البيانات وإشعارات تغيير الممتلكات ، ولكن يمكن أن يكون التنفيذ اليدوي مرهقًا. بينما بناء جملة مبسط مثل {get ؛ تعيين؛ الإخطار ؛}
سيكون مثاليًا ، فهو غير مدمج في C#. دعونا نستكشف طرقًا لتبسيط العملية.
تتضمن نهجًا واحدًا فئة أساسية مع 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
}
هذا يقلل من إعلان الممتلكات. 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 وبعد ذلك تقدم تحسينات إضافية لرمز أكثر إيجازًا.
توليد رمز الأتمتة
للحصول على أتمتة كاملة ، فكر في أدوات مثل propertyChanged.fody
. بينما تتطلب تبعية خارجية ، فإنه يلغي الحدث الدليل هذا خيار قوي للمشاريع الكبيرة. يعتمد الاختيار بين التحسين اليدوي (باستخدام فئة أساسية) وتوليد الكود الآلي على حجم المشروع وتفضيلات التبعيات الخارجية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3