如何使字典仅通过属性读取?

时间:2018-06-27 22:40:54

标签: c# collections scope

嗨,我有一些简单的代码,其中有一个字典的私有字段,还有一个通过get公开它的属性。

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

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

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

在其他班级,我仍然可以做MyClass.Systems.Add(),这是我想避免的。

这可能吗?

1 个答案:

答案 0 :(得分:2)

如何?

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

这将仅在公共属性中公开_systems词典的只读功能。

相关问题