Ich muss etwas vermissen und fühle mich wie ich zurück zu den Grundlagen, aber according to the reference sources für ConcurrentDictionary in. Net 4.5 es implementiert die IReadOnlyDictionary-Schnittstelle (wenn auch einige Mitglieder explizit), aber aus irgendeinem Grund kann ich keine Instanz darauf werfen Schnittstelle - warum ist das?Konnte nicht konvertiert werden. Net ConcurrentDictionary <K,V> zu IReadOnlyDictionary <K,V> Schnittstelle?
IDictionary<int, string> a = new ConcurrentDictionary<int, string>(); // works
IReadOnlyDictionary<int, string> b = new ConcurrentDictionary<int, string>(); // does not work
.. warum ist das?
Um dies ein wenig mehr klar:
Der Quellcode, auf den Sie verweisen, ist für .NET 4.6.1. –
Yacoub - Ich weiß, aber die Schnittstelle (n) mindestens die IReadOnlyDictionary, ist in 4.5.1 (die das Projekt zielt) bereits, auch .. der Link ist nur als Referenz .. Ich könnte auch mit MSDN usw. verknüpft werden –
Wenn Sie den Quelltext von .NET 4.5.1 herunterladen, werden Sie sehen, dass ConcurrentDictionary diese Schnittstelle nicht implementiert –