防止class's用户使用setter

本文关键字:用户 setter class 防止 | 更新日期: 2023-09-27 17:50:07

我正在尝试用c#实现一个简单的精灵动画框架。我的类有getter和setter。对我来说,使用这个getter和setter是可以的,但是这个框架的用户不应该看到和使用这个setter。我怎样才能做到呢?

防止class's用户使用setter

检查internal可访问性修饰符,类似于publicprivate,但只允许访问修改后的属性作为同一程序集的一部分编译的代码。您可以只在setter上指定它,就像使用private一样。

public string MyProperty {get; internal set;}

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

我非常喜欢在这种情况下使用显式接口…但是,如果框架包含在单个程序集中,"内部"显然可以完成这项工作。