我有一個類,如:C#未定義泛型類的列表?
class GClass<T1, T2> {}
實現:
class CClass1<String, String> {}
class CCLass2<String, Double> {}
在我的C#代碼,我需要像這樣定義一個List<GClass<T1,?>
對象。
可能嗎?
通過另一方面,我曾與List<GClass<String, Object>>
測試,但是我不能添加一個對象是這樣的:
List<GClass<String, Object>> list = new List<GClass<String, Object>>();
CClass1 c1 = new CClass1();
list.Add(c1);
編譯轉儲我的編譯錯誤。
編輯
我用它測試:
public interface IViz<T, TQuery, out TOut>
{
Configuration.IVizConfiguration<T> VizConfiguration { get; }
IList<TOut> SelectedValues { get; }
IEnumerable<TQuery> generate(IEnumerable<T> search);
Expression<Func<T, bool>> generateExpression(Object selectedVizValue);
IEnumerable<Expression<Func<T, bool>>> generateExpressions(IEnumerable<Object> selectedVizValues);
}
然而,編譯器告訴我:
錯誤3無效方差:類型參數 '吹捧' 必須是在'UI.Forms.SearchTool.Visualization.IViz.SelectedValues'上不變。 'TOUT'是協變的。 d:\ PROJECTS \住\用戶\ NetClient \ UI \表格\ SearchTool \可視\ IViz.cs 8 42 UI
你能描述編譯錯誤嗎? – badikumar
'CClass1 {}'CClass1'和'CClass2'是什麼? –
Ian