ImmutableDictionary
有一个TryAdd
的{{1}}方法(出于某种原因,我在DotNetPeek中找不到它)
因此,它将编译:
System.Collections.Generic.CollectionExtensions
但是我不明白它的作用是什么?它不应该返回一个新的ImmutableDictionary吗?
答案 0 :(得分:6)
ImmutableDictionary.Add确实确实返回了具有该值的新ImmutableDictionary。您所指的扩展方法看起来像是from here。
我不建议将此扩展方法与不可变字典一起使用,因为它将在编译时在运行时得到NotSupportedException
。
再看一点,according to this,的IDictionary<T,TR>.Add
的显式接口实现将简单地抛出NotSupportedException
,这似乎是合适的。
void IDictionary<TKey, TValue>.Add(TKey key, TValue value)
{
throw new NotSupportedException();
}
答案 1 :(得分:2)
TryAdd
可能绑定到IDictionary<TKey, TValue>
实现的ImmutableDictionary<TKey, TValue>
。可能它没有ImmutableDictionary
的任何知识,并且遵循Try...
模式产生了bool
值。