我有一个不变的字典暴露在课堂上。如何初始化ReadOnlyDictionary?
目前我的代码看起来像
using System.Collections.Generic;
using System.Collections.ObjectModel;
public class FooClass
{
private static ReadOnlyDictionary<string, byte> _validRevisions
= new ReadOnlyDictionary<string, byte>(
new Dictionary<string, byte>() {
{ "1.0", 0x00 },
{ "1.1", 0x01 },
{ "1.2", 0x02 },
{ "1.3", 0x03 }
});
public static ReadOnlyDictionary<string, byte> ValidRevisions => _validRevisions;
// other FooClass contents...
}
我已经使用了支持字段_validRevisions
,因为我无法弄清楚创建一个共享定字典属性,更好的办法。有没有更好的方法来管理这个问题,或者我应该让这个领域公开?
我的主要问题是有没有简短的方式来初始化_validRevisions
领域本身?创建一个内联字典将其传递到一个字典(这恰好是只读)似乎有点代码味道。是吗?有没有更好的办法?
编辑:关于ROD的一件事我刚刚注意到,有没有方法来支持检查它是否包含给定的值...是否有一个相关的原因是只读的?
您标记了C#4,但使用了C#6功能(=>运算符),您使用哪一个? –
@CamiloTerevinto呃,不知道是C#6!现在将改变 – Toby
字典实现IReadOnlyDictionary 所以你的_validRevisions可以是Dictionary的一个实例,而ValidRevisions只能暴露IReadOnlyDictionary部分。 –