簡體   English   中英

無法從非協變通用接口隱式轉換類型

[英]Cannot implicitly convert type from non-covariant generic interface

重要編輯 :請勿在此上下文中使用詞典。 它使用Object.GetHashCode(),它不適合用作字典鍵。 我仍然從中學到了一些東西。

我有以下聲明

private static IDictionary<IDictionary<string,string>, IEnumerable<Fishtank>> _cache;

和以下代碼嘗試初始化它

if (_cache == null) 
  _cache = new Dictionary<Dictionary<string,string>, LinkedList<Fishtank>>(); 

我遇到的問題是初始化會產生編譯時錯誤。

無法將類型'System.Collections.Generic.Dictionary,System.Collections.Generic.LinkedList>'隱式轉換為'System.Collections.Generic.IDictionary,System.Collections.Generic.IEnumerable>'。 存在顯式轉換(您是否錯過了演員?)

我知道Dictionary和LinkedList分別實現了IDictionary和IEnumerable,所以我在這里有點不知所措。

你可以這樣做

if (_cache == null) 
    _cache = new Dictionary<IDictionary<string, string>, IEnumerable<Fishtank>>();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM