1

我有以下代码:

    private BindingList<Box> _boxesToDisplay;
    public BindingList<Box> BoxesToDisplay
    {
        get
        {
            return _boxesToDisplay;
        }
        set 
        {
            // Unhook the old one.  Just incase
            _boxesToDisplay.AddingNew -= NewItemAdded;
            // Set the new value
            _boxesToDisplay = value;
            // Hook in the value again.
            _boxesToDisplay.AddingNew += NewItemAdded;
        }
    }

但我不得不思考。如果这对 assingment 运算符来说是一个重载,那将是最好的。然后我想知道他们是否真的这样做了,我可以用这个替换我的代码:

     public BindingList<Box> BoxesToDisplay { get; set; }

是真的?这会:

     myClass.BoxesToDisplay = new BindingList<Box>();

仍然将AddingNew事件设置NewItemAdded()BoxesToDisplay?

4

1 回答 1

2

这个 [...] 是否仍将 AddNew 事件设置为 NewItemAdded() 并定义了 BoxesToDisplay?

不,你完全取代了_boxesToDisplay参考。没有移植事件处理程序的机制。

我只能说,有了 Auto-Imp 属性,你就不需要-=那么多了,因为其他东西没有机会仍然可以访问旧实例。但是您仍然必须附加到新的。

于 2011-02-17T15:51:42.170 回答