c# - 如何通过属性使字典只读?

标签 c# collections scope

<分区>

您好,我有一段简单的代码,其中我有一个字典的私有(private)字段,以及一个通过 get 公开它的属性。

但是我仍然可以从其他类插入到这个字典中,并且想知道如何防止这种情况,所以我只能通过它定义的类中的字段而不是通过公开它的属性插入到字典中?

这是我的字段/属性代码:

    private Dictionary<UnitType, Entity> _systems;
    public Dictionary<UnitType, Entity> Systems => _systems;

在其他一些类(class)中,我仍然可以执行我想阻止的 MyClass.Systems.Add()

这可能吗?

最佳答案

这个怎么样:

private Dictionary<UnitType, Entity> _systems;
public IReadOnlyDictionary<UnitType, Entity> Systems => _systems;

这将在公共(public)属性中公开 _systems 字典的只读功能。

关于c# - 如何通过属性使字典只读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51072381/

相关文章:

Java 列表作为第一项应始终具有特定值

java - 为什么在 Set/List/Map 中包装元素的方法在名称中包含 'singleton'?(java.util.Collections)

object - 访问对象内的字值

c# - 如何从 MatchCollection 中获取唯一元素

C++ 类变量析构函数

Facebook (FB.login) 未请求我的许可

C# 数据集、分页和大量数据

C# 泛型 : there is no way to constrain a type to have a static method?

c# - 谷歌认证过程

c# - 将 ExecuteReader 转换为 XML HTTP 响应