我想用C#實現一個簡單的sprite動畫框架。我有一些有getter和setter的類。對我來說,使用這個getters和setter是可以的,但是這個框架的用戶不應該看到並使用這個setter。我怎樣才能做到這一點?防止類的用戶使用setter
1
A
回答
10
檢出internal
輔助功能修飾符,類似於public
或private
,但允許訪問修改後的屬性僅用於編譯爲相同程序集的一部分的代碼。你只能在setter上指定它,就像使用private
一樣。
public string MyProperty {get; internal set;}
當然,這並不完美。如果你自己的框架由幾個組件組成,他們也會遇到可訪問性問題。一種選擇是相應地構建解決方案。另一種方法是使用InternalsVisibleTo屬性,該屬性允許程序集顯式地將外部程序集命名爲「朋友」,從而允許其訪問其成員的internal
。
+0
假設我不會在另一個項目中使用此setter,內部將解決我的問題。我理解正確嗎? – Cem
+0
是的。我發佈的(更新的)代碼片段將允許任何人訪問getter,並且只通過編譯在同一個DLL/EXE中的代碼來設置setter。 –
1
我很喜歡使用顯式接口來處理這種情況......但是如果框架包含在一個單獨的程序集中,「內部」顯然會完成這項工作。
相關問題
- 1. 防止用戶
- 2. 防止用戶
- 3. 防止用戶
- 4. 防止用戶使用Excel的實例
- 5. 防止用戶ID
- 6. 防止用戶訪問類字段
- 7. PHP OOP - 使用getter setter來防止改變屬性值嗎?
- 8. 防止用戶點擊
- 9. 防止用戶篡改html
- 10. 防止從用戶下載
- 11. 防止未授權用戶
- 12. 防止用戶刷新
- 13. 防止用戶在UNIX
- 14. 防止用戶更改
- 15. 防止用戶在javascript
- 16. 防止用戶插入*
- 17. 如何防止用戶使用特定用戶名註冊?
- 18. 在類中使用getter-setter
- 19. 防止在getter/setter中執行綁定
- 20. 防止用戶終止Java程序?
- 21. 防止使用ImpersonateNamedPipeClient()
- 22. Quickblox:防止用戶創建帳戶
- 23. 防止欺詐用戶登錄/帳戶
- 24. 防止用戶啓動多個帳戶?
- 25. 防止使用TNEFParser的Tika
- 26. 使用setter來阻止訪問
- 27. 防止用戶禁用Office加載項?
- 28. 防止用戶濫用javascript代碼
- 29. 如何防止用戶濫用服務
- 30. 防止用戶使用FireBug之類的東西編輯複選框值?
使setter私人 –
@ratchetfreak但我使用這個setter。 – Cem