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実装されているのですか? 実装されたインターフェースの使用を隠すことの利点は何ですか?