c# - 在静态类中声明一个字典

标签 c# .net dictionary

如何在静态类中声明静态字典对象?我试过了

public static class ErrorCode
{
    public const IDictionary<string, string> ErrorCodeDic = new Dictionary<string, string>()
    {
        { "1", "User name or password problem" }     
    };
}

但是编译器提示“引用类型的 const 字段不是字符串,只能用 null 初始化”。

最佳答案

如果你想声明一次字典并且永远不改变它,那么将它声明为只读的:

private static readonly Dictionary<string, string> ErrorCodes
    = new Dictionary<string, string>
{
    { "1", "Error One" },
    { "2", "Error Two" }
};

如果您希望字典项目是只读的(不仅是引用,还有集合中的项目),那么您将必须创建一个实现 IDictionary 的只读字典类。

查看 ReadOnlyCollection 以供引用。

顺便说一句,const 只能在声明内联标量值时使用。

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

相关文章:

c# - 为什么我的电子表格以 .xlsx 扩展名保存,但在我将其更改为 .xls 之前不会发生?

c# - 生成具有方法类型的类的方法列表

c# - 安全数据的全局变量

c# - 如何证明 .NET CLR JIT 每次运行只编译每个方法一次?

Python 循环 vs 理解列表 vs 映射的副作用(即不使用返回值)

c# - 如何最小化 GC 集合的长度?

c# - 在运行时向图像添加注释

.net - Linq 到实体和包含?

c# - 如何按值中的子字符串对 Dictionary<string,string> 进行排序?

dictionary - 文本文件中有任何公开可用的单词词典吗?