1

ReadOnlyObservableCollection和 和有什么不一样ObservableCollection

我有以下代码片段:

private ObservableCollection<FeedData> _Feeds = new ObservableCollection<FeedData>();
public ObservableCollection<FeedData> Feeds
{
    get
    {
        return this._Feeds;
    }
}

我可以用 替换ObservableCollectionReadOnlyObservableCollection

4

2 回答 2

2

当它是只读集合时,尝试添加到 _Feeds 。

它是一个包装器,可防止您更改集合。当然它只是一个包装器,所以如果你引用了底层集合,你可以通过ReadOnly

线索就在名字里。

于 2012-05-27T02:55:37.453 回答
1

ReadOnlyObservableCollection是一个只读包装器ObservableCollection

不能通过这个只读包装器进行任何更改,但对底层 ObservableCollection 的所有更改都会反映到 ReadOnlyObservableCollection。

如果 ObservableCollection 未公开为 ReadOnly(不是 readonly 属性,而是作为 ReadOnlyObservableCollection),则底层集合将被修改。

属性返回的数组不受写保护,即使该属性是只读的。为了保持数组防篡改,该属性必须返回数组的副本。通常,用户不会理解调用此类属性对性能的不利影响。具体来说,他们可能将该属性用作索引属性。

CA1819: 属性不应返回数组

于 2012-05-27T03:03:46.530 回答