ImmutableDictionary有一個TryAdd方法System.Collections.Generic.CollectionExtensions(由于某種原因,我在 DotNetPeek 中找不到)所以這編譯:ImmutableDictionary<int, int> d = ImmutableDictionary<int, int>.Empty;
bool b = d.TryAdd(1, 1);但是我不明白它的作用是什么?它不應該返回一個新的 ImmutableDictionary 嗎?
2 回答

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
ImmutableDictionary.Add確實返回了一個帶有值的新 ImmutableDictionary。您所指的擴展方法看起來像是來自這里。
我不建議將此擴展方法與不可變字典一起使用,因為雖然這將編譯,但您將NotSupportedException在運行時得到一個。
進一步看,根據this,顯式接口實現IDictionary<T,TR>.Add將簡單地 throw NotSupportedException,這似乎是合適的。
從源頭上,
void IDictionary<TKey, TValue>.Add(TKey key, TValue value)
{
throw new NotSupportedException();
}

慕村225694
TA貢獻1880條經驗 獲得超4個贊
TryAdd
可能綁定到IDictionary<TKey, TValue>
哪個ImmutableDictionary<TKey, TValue>
工具??赡芩鼪]有任何關于 a 的知識ImmutableDictionary
并遵循Try...
產生bool
值的模式。
- 2 回答
- 0 關注
- 224 瀏覽
添加回答
舉報
0/150
提交
取消