如何在C#中返回对不可修改对象的引用

时间:2014-01-08 23:57:57

标签: c# object reference return

我有这样的课程:

static private Dictionary<int, String> states;

static public Dictionary<int, String> GetStates()
{
  if (states != null)
  {
    return states;
  }
  else
  {
    states = new Dictionary<int, string>();
    states.Add(1, "State 1 name.");
    states.Add(2, "State 2 name");
    // etc
  }
  return states;
}

返回的字典应该是不可修改的。 寻找解决此问题的最佳方法。

1 个答案:

答案 0 :(得分:2)

如果您将退货类型更改为IDictionary<TKey, TValue>,那么您应该能够返回ReadOnlyDictionary

static public IDictionary<int, String> GetStates()
{
  if (states != null)
  {
    return new ReadOnlyDictionary(states);
  }