我想用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