如何在静态类中声明静态字典对象?我试过了
public static class ErrorCode { public const IDictionaryErrorCodeDic = new Dictionary () { { "1", "User name or password problem" } }; }
但是编译器抱怨" 除了字符串之外的引用类型的const字段只能用null初始化 ".
如果要声明字典一次并且从不更改它,则将其声明为readonly:
private static readonly DictionaryErrorCodes = new Dictionary { { "1", "Error One" }, { "2", "Error Two" } };
如果您希望字典项是只读的(不仅是引用而且是集合中的项),那么您将不得不创建一个实现IDictionary的只读字典类.
查看ReadOnlyCollection以供参考.
BTW const只能在内联声明标量值时使用.
正确的语法(在VS 2008 SP1中测试)是这样的:
public static class ErrorCode { public static IDictionaryErrorCodeDic; static ErrorCode() { ErrorCodeDic = new Dictionary () { {"1", "User name or password problem"} }; } }