【发布时间】:2012-04-03 06:40:48
【问题描述】:
具体来说,我想写一个导出函数,我可以这样使用:
List<HistoryBook> HistoryBooks = something;
List<MathBook> MathBooks = something;
List<ScienceBook> ScienceBooks = something;
ExcelExporter.Export(FileName, HistoryBooks, MathBooks, ScienceBooks);
我想过类似下面的代码,但在这种情况下,我必须将所有内容都转换为“对象列表”,这不是我想要的。
public void Export(string FileName, params List<object>[] Data)
你能告诉我如何优雅地解决这个问题吗?
【问题讨论】:
-
HistoryBookMathBook和ScienceBook是否继承自同一个类,比如Book? -
也许您希望书籍继承自
Book类? -
是的,让类继承BaseClass Book或者实现一个叫Book的接口,然后方法的参数就是BaseClass类型或者接口类型
-
不一定。它们都应该从对象继承,不是吗?
-
不,所有的类都不是继承自 Class 对象。这取决于您的 HistoryBook、MathBook 声明。
标签: c# generics params contravariance covariant