我正在创建一个类,它将具有某种键值对。目前,我有类似于以下内容:线程安全访问静态集合
private static Dictionary<Type, List<PropertyInfo>> PropertyCache { get; set; }
这是在线程安全方法中实现的正确方法吗?出于某种原因,在这种情况下,我对对Dictionary
的影响感到困扰。如果这是正确的,是否有一种不正确的方式可以证明,以便我可以在其余的代码中避免它。
另外,它应该是只读的(我只会添加 - 从集合中删除的东西)?
如果有所作为,该物业将永远被宣布为private
。
在此先感谢
虽然标签C#,VB中的回答都OK,我是 “双语” 可以这么说
编辑:用乔恩斯基特
经过讨论在他的回答的评论中,用法将是:
// I will do this
PropertyCache.Add(typeof(string), new List<PropertyInfo>());
PropertyCache.Remove(typeof(string));
// I will never do this
PropertyCache = new Dictionary<Type, List<PropertyInfo>>();
I永远不会遍历集合,只能通过键访问。
“我只会添加 - 从集合中删除的东西”是什么意思? –
@SteveDanner,例如我永远不会去'PropertyCache = new Dictionary>'只有'PropertyCache.Add(item)':) –
OK,一个ReadOnlyDictionary将无法正常工作。考虑Jon Skeet的答案,IMO。 –