這是一個非常基本的OOP問題。我不想做一個_objectSettings
的副本,並覺得我有一個大腦放屁。這個問題可以在對象的Getter函數中看到。封裝如何修改私有成員變量,但允許成員可以讀取
例子:
public class CoolObject
{
private Dictionary<long, bool> _objectSettings;
public CoolObject(){
//.. do stuff//
}
public void UpdateSettings(long, bool){
// enforce new setting obey's some rules
}
public Dictionary<long,bool> GetSettings(){
// return Dictionary of settings, but not allow users to modify _objectSettings
}
}
謝謝:)
編輯:我在.NET 4.0,所以我選擇答案可能不反映未來的讀者最優化的解決方案。
你需要序列化的詞典:http://msdn.microsoft.com/en-us/library/ms233843.aspx – SamFisher83
你想要的任何變化*你*讓通過'_objectSettings'是可見任何已經調用GetSettings的代碼? –
@ SamFisher83:這裏不需要序列化。 –