gpt4 book ai didi

c# - c# 中的 const 字典

转载 作者:太空狗 更新时间:2023-10-29 18:06:25 26 4
gpt4 key购买 nike

我在 C# 中有一个包含字典的类,我想创建它并确保只要包含它的类存在,就不会从该字典中添加、编辑或删除任何内容。

readonly 并没有真正帮助,一旦我测试并看到我可以在之后添加项目。例如,我创建了一个示例:

public class DictContainer
{
private readonly Dictionary<int, int> myDictionary;

public DictContainer()
{
myDictionary = GetDictionary();
}

private Dictionary<int, int> GetDictionary()
{
Dictionary<int, int> myDictionary = new Dictionary<int, int>();

myDictionary.Add(1, 2);
myDictionary.Add(2, 4);
myDictionary.Add(3, 6);

return myDictionary;
}

public void Add(int key, int value)
{
myDictionary.Add(key, value);
}

}

我希望 Add 方法不起作用。如果可能的话,我希望它甚至不编译。有什么建议吗?

实际上,我很担心,因为它是开放给很多人更改的代码。因此,即使我隐藏了 Add 方法,某人也有可能“无意地”创建一个方法来添加一个键或删除另一个键。我希望人们看到并知道他们不应该以任何方式更改词典。就像我使用 const 变量一样。

最佳答案

完全隐藏字典。只需在 DictContainer 类上提供一个从字典中检索项目的 get 方法。

public class DictContainer
{
private readonly Dictionary<int, int> myDictionary;

public DictContainer()
{
myDictionary = GetDictionary();
}

private Dictionary<int, int> GetDictionary()
{
Dictionary<int, int> myDictionary = new Dictionary<int, int>();

myDictionary.Add(1, 2);
myDictionary.Add(2, 4);
myDictionary.Add(3, 6);

return myDictionary;
}

public this[int key]
{
return myDictionary[key];
}
}

关于c# - c# 中的 const 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/853761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com