C#防止字典属性元素被设置在类之外?

C#防止字典属性元素被设置在类之外?,c#,properties,encapsulation,C#,Properties,Encapsulation,标题说明了一切。通过访问修饰符减少访问只会阻止重新初始化属性;它不能阻止元素成为全局状态(坏习惯)。我知道有一个索引集合,但是对于任何其他索引集合,我应该怎么做 public class Start { public static void main() { //CODE SMELL AHEAD AttendanceManager.MuteStatuses[0] = new KeyValuePair <string, string> (

标题说明了一切。通过访问修饰符减少访问只会阻止重新初始化属性;它不能阻止元素成为全局状态(坏习惯)。我知道有一个索引集合,但是对于任何其他索引集合,我应该怎么做

public class Start
{
    public static void main()
    {
        //CODE SMELL AHEAD
        AttendanceManager.MuteStatuses[0] = new KeyValuePair <string, string> ("", ""); 
    }
}

public static class AttendanceManager
{ 
    public static HybridDictionary MuteStatuses
    {
        get
        {
            playersMuteStatuses.Add ("", "");
            return playersMuteStatus;
        }
    }      
    private static HybridDictionary playersMuteStatus = new HybridDictionary();
}
公共类启动
{
公共静态void main()
{
//代码预告
AttendanceManager.MuteStatus[0]=新的KeyValuePair(“,”);
}
}
公共静态课堂管理员
{ 
公共静态杂交状态
{
得到
{
playersmutestatus.Add(“,”);
返回playersMuteStatus;
}
}      
private static HybridDictionary playersMuteStatus=新建HybridDictionary();
}
编写帮助程序方法:

public static void AddMuteStatus()
    => playersMuteStatus.Add("", "");

public static object GetMuteStatus(object idx)
    => return playersMuteStatus[idx];
写入帮助器方法:

public static void AddMuteStatus()
    => playersMuteStatus.Add("", "");

public static object GetMuteStatus(object idx)
    => return playersMuteStatus[idx];

不要使用
混合字典
。我们有
IReadOnlyDictionary

private Dictionary playersMuteStatus=new;
公共IReadOnlyDictionary静音状态
{
得到
{
将播放器静音状态返回为IReadOnlyDictionary;
}
}

不要使用
混合字典
。我们有
IReadOnlyDictionary

private Dictionary playersMuteStatus=new;
公共IReadOnlyDictionary静音状态
{
得到
{
将播放器静音状态返回为IReadOnlyDictionary;
}
}