我有一個帶有三個鍵/值對的字典對象。我希望這些值能夠被修改,但我想阻止能夠添加更多。有沒有最好的方法來防止添加新的鍵/值對?我正在考慮隱藏Add方法。如何最好地防止將內容添加到字典中
回答
只是將字典封裝在自定義類中,並且不提供添加方法。這就是說,如果總是隻有三個值,我會考慮只使用具有三個屬性的類而不是字典。如果密鑰是固定的並且事先知道的話,那麼製作字典沒有意義 - 三個屬性將具有更簡單,更不易出錯的API並且更高效。
如果只有3個值,建議不使用字典。 – Dan 2013-04-30 22:28:50
在這種情況下,有三個,但在其他情況下可能有四個,五個或兩個。即報告生成工具,每個報告部分都有固定數量的小節。所以我想到了一個接口IReportSection,每個擴展它的類都會使用字典,但是會有不同的條目。 – appsecguy 2013-05-01 13:50:07
@ pendraggon87您可以隨時使界面或類提供索引器(http://msdn.microsoft.com/en-us/library/vstudio/6x16t2tx.aspx),而不是實際使用Dictionary。由於每個班級都有一個固定的#(但很多),該字典是不是真的有必要... – 2013-05-01 15:46:10
創建一個封裝類,禁止這些操作,然後將您的字典包裝在實例中,只要您想使密鑰集成爲只讀。 (例如,明確實施IDictionary<TKey, TValue>.Add()
並使其丟掉NotSupportedException
。)
隱藏幾乎從來都不是正確的事情(我認爲通過「隱藏」你的意思是繼承和使用new
來隱藏基類的方法)。如果您隱藏Add
方法並且消費者將對象強制轉換回基類,則它們將能夠訪問隱藏的方法並向其中添加項目。
正如其他人所說的,這裏最好的方法是創建一個包裝IDictionary
並且不提供添加方式的包裝。
- 1. 如何使用字典列表將內容添加到Dictionary中
- 2. 如何最好地將多個字段添加到對象
- 3. 如何防止外部代碼操作字典的內容?
- 4. 如何防止用戶將字段添加到只讀表中?
- 5. 如何防止iframe加載新內容?
- 6. 如何防止加載內容的MKMapView?
- 7. 如何將密鑰添加到字典列表中的字典?
- 8. 如何將字典添加到plist字典中?
- 9. 如何將值添加到JSON字典?
- 10. 如何將字典添加到PyEnchant?
- 11. 動態地將內容添加到div
- 12. 如何將add_filter添加到插件後添加到內容中
- 13. 如何防止將短字符串添加到集合
- 14. 將字典添加到字典
- 15. STL中最好的字典容器
- 16. 如何將內容標題添加到內容描述中?
- 17. 如何將新內容添加到td
- 18. 如何將ControlTemplate添加到內容?
- 19. 如何將Rx.Observable.fromEvent添加到ajax內容
- 20. 如何將內容添加到回覆?
- 21. 如何防止ASP.NET添加到內聯樣式中?
- 22. 如何在增加內容大小時防止內容偏移
- 23. 如何使用insertRowsAtIndexPaths將數組內的字典添加到UItableview?
- 24. 如何添加字典中的字典
- 25. 如何將字典的內容複製到C#中的新字典中?
- 26. 如何最好地將客戶端驗證添加到這兩個字段
- 27. 如何將字符串添加到Python中的字典中?
- 28. 將內容添加到內容區域
- 29. Pjax:將內容添加到內容
- 30. SBT:如何防止自動將scala-library添加到pom中?
是否有你需要它是一個詞典的原因? – 2013-04-30 22:37:24