2016-12-11 8 views
0

タイトルはそれをすべて言っています。アクセス修飾子によるアクセスを減らすことは、プロパティを再初期化することを妨げるだけです。要素がグローバルな状態にならないようにします(悪い習慣)。私はworkaround with List<T>'sがあることを知っていますが、他のインデックスされたコレクションではどうしたらいいですか?C#辞書のプロパティ要素がクラス外に設定されないようにしますか?

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(); 
} 

答えて

1

いけないHybridDictionaryを使用しています。我々は持っているIReadOnlyDictionary<T>

private Dictionary<string, string> playersMuteStatus = new... ; 
public IReadOnlyDictionary<string, string> MuteStatuses 
{ 
    get 
    { 
     return playersMuteStatus as IReadOnlyDictionary<string, string>; 
    } 
} 
1

書き込みヘルパーメソッド:

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

public static object GetMuteStatus(object idx) 
    => return playersMuteStatus[idx]; 
関連する問題