這裏我有下面的代碼位:返回一個ReadOnlyCollection從方法與一個IList返回類型
private IList<IState> _states = new List<IState>();
private ReadOnlyCollection<IState> _statesViewer;
public IList<IState> States { get { return _statesViewer; } }
相信一般優選的是,返回的接口,而不是具體的類本身,但在本的情況下,不應該設置爲States
屬性的返回類型a ReadOnlyCollection
?
我的圖書館的任何用戶都會認爲你可以用IList
做任何事情,如果我這樣設置它,那就意味着添加元素。這是不正確的,我肯定違反了將它作爲IList暴露的合同。
我對這個觀點還有什麼我在這裏失蹤?