防止班级用户使用setter

时间:2014-03-13 12:02:09

标签: c# oop frameworks

我试图用C#实现一个简单的sprite动画框架。我有一些有吸气剂和二传手的课程。使用这个getter和setter对我来说没关系,但是这个框架的用户不应该看到并使用这个setter。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:10)

查看internal辅助功能修饰符,类似于publicprivate,但只允许将修改后的属性访问为作为同一程序集的一部分编译的代码。您只能在设置器上指定它,就像使用private

一样
public string MyProperty {get; internal set;}

当然,这并不完美。如果您自己的框架由多个程序集组成,它们也会遇到可访问性问题。一种选择是相应地构建您的解决方案。另一个是使用InternalsVisibleTo属性,它允许程序集将外部程序集明确命名为“朋友”,允许它访问其internal成员。

答案 1 :(得分:1)

我非常喜欢在这种情况下使用显式接口......但如果框架包含在单个程序集中,“内部”显然会完成工作。