ConcurrentDictionary
があり、その関数を使用したい場合は、次のAdd()
ようにキャストする必要がありますIDictionary
。
var cd = new ConcurrentDictionary<int, int>();
cd.Add(1, 1); // Compile error: does not contain a definition for 'Add'
IDictionary<int, int> id = cd;
id.Add(1, 1); // Works
質問ConcurrentDictionary と IDictionaryは、プライベート メソッドを使用して明示的にConcurrentDictionary
実装しているためだと教えてくれます。IDictionary
私の質問:なぜそのようにConcurrentDictionary
実装されているのですか? 実装されたインターフェースの使用を隠すことの利点は何ですか?