Jee*_*Jee 2 c# dictionary properties private
我正在尝试在具有私有 Add 方法/调整值的能力的类中创建一个字典。基本上,我希望能够从类外部访问它并查看其中的值,但我不希望任何人能够在不使用类中的方法的情况下更改与键关联的值。
我首先尝试创建一个作为字典的属性(这样我可以轻松地尝试使用 getter 和私有 setter 执行我想要的操作),但后来发现这完全不可能。
我知道可能有一种方法可以使用自定义方法或自定义单独的类来执行此操作,但我想首先检查此处,看看 C# 中是否有任何方法可以执行此操作。
让我知道你的想法。谢谢!
您可以使用IReadOnlyDictionary<TKey,TValue>- 它是所有 Dictionary 类都实现的接口。
但如果这是您公开的 Propery 的类型,则没有可Add()调用的函数。它有List和Collection“兄弟”,有着同样的待遇。
请注意,从技术上讲,有人仍然可以将其投射回Dictionary<TKey,TValue>,从而授予他们完全的读/写访问权限。除了安全应用程序之外,这对所有应用程序来说都不重要。如果有必要,只需分发您内部词典的克隆即可。
代码可能如下所示:
Dictionary<int, string> SecuredCollection = new Dictionary<int, string>();
public IReadOnlyDictionary<int, string> ThatDictionaryUsersCanOnlyRead
{
get
{
return SecuredCollection;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
959 次 |
| 最近记录: |