Должно быть, что-то мне не хватает и чувствую, что мне нужно вернуться к самым основам, но according to the reference sources для ConcurrentDictionary в .Net 4.5 он реализует интерфейс IReadOnlyDictionary (хотя некоторые члены явно), но по какой-то причине я не могу использовать экземпляр для этого интерфейс - почему?Невозможно отличить .Net ConcurrentDictionary <K,V> в IReadOnlyDictionary <K,V> интерфейс?
IDictionary<int, string> a = new ConcurrentDictionary<int, string>(); // works
IReadOnlyDictionary<int, string> b = new ConcurrentDictionary<int, string>(); // does not work
.. почему это так?
Чтобы сделать это немного более ясным:
Исходный код, на который вы ссылаетесь, предназначен для .NET 4.6.1. –
Yacoub - Я знаю, но интерфейс (ы), по крайней мере, IReadOnlyDictionary один, уже в 4.5.1 (который нацелен на проект) .. ссылка IS просто для справки .. Я мог бы также связать с MSDN и т. Д. –
Если вы загрузите исходный код .NET 4.5.1, вы увидите, что ConcurrentDictionary не реализует этот интерфейс. –