我有一个类,如: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