我有一些困惑與此,從與MEF是一種通用類型MyType <,>實際上是一種類型?
出口泛型類型亂搞出現我注意到:
new Dictionary<string,bool>().GetType() == typeof(Dictionary<,>)
false
new Dictionary<string,bool>().GetType().GetGenericTypeDefinition() == typeof(Dictionary<,>)
true
然而詞典<,>本身不被認爲是「類型」,因爲這實際上會生成編譯錯誤:
new Dictionary<string,bool> as Dictionary<,>
Type expected
new Dictionary<string,bool> is Dictionary<,>
Type expected
所以我的問題是,是字典<,>實際上是一個類型? .NET處理泛型類型與非泛型類型不同?
現在在MEF我可以一個通用類導出爲
[Export(typeof(MyGenericClass<,>))]
,這將滿足喜歡
[Import]
public MyGenericClass<string, long> Instance { get; set; }
我感到困惑的類型系統的規則在這裏