」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 簡化INotifyPropertyChanged:有比手動實現更簡單的辦法嗎?

簡化INotifyPropertyChanged:有比手動實現更簡單的辦法嗎?

發佈於2025-04-15
瀏覽:123

[2 [2

InotifyPropertyChanged Simplifying INotifyPropertyChanged: Are There Easier Ways Than Manual Implementation?
對於數據綁定和屬性更改通知至關重要,但是手動實現可能很麻煩。 而簡化的語法,例如

{get;放; notify;}

將是理想的,它不是內置在C#中。 讓我們探索簡化過程的方法。 一種方法涉及一個帶有通用

公共類數據:inotifyPropertychanged { 受保護的虛擬void onProperTychanged(String propertyName); 受保護的bool setField (參考t字段,t值,字符串屬性名稱); 公共字符串名稱 { 獲取{返回名稱; } set {setField(ref name,value,“ name”); } } // ...其他屬性 } 這降低了屬性聲明樣板。 c#5的屬性進一步簡化了以下簡化:

受保護的bool setfield (ref t field,t value,[callermembername]字符串propertyName = null); 公共字符串名稱 { 獲取{返回名稱; } set {setField(ref name,value); } }

[2
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
}
事件完全升高。 對於大型項目來說,這是一個有力的選擇。 手動優化(使用基類)和自動代碼生成之間的選擇取決於項目大小和對外部依賴關係的偏愛。
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3