【问题标题】:Howto someFunction(List<acceptDifferentTypesHere> list) { /*reflection stuff*/ }如何使用 someFunction(List<acceptDifferentTypesHere> list) { /*reflection stuff*/ }
【发布时间】:2012-01-18 15:13:36
【问题描述】:
我想从列表中生成一个数据表。
所以 f.e.我有两个列表
List<typeA> listA = new List<typeA>();
List<typeB> listB = new List<typeB>();
我怎样才能获得一个函数接受两个(或多个)具有不同元素类型的列表?
private void someFunction(List<acceptDifferentTypesHere> list)
{
/*elementwise reflection stuff*/
}
任何帮助都会很好,
哈利
【问题讨论】:
标签:
c#
asp.net
function
collections
【解决方案1】:
private void someFunction<T>(List<T> list)
{
/*elementwise reflection stuff*/
}
如下使用
someFunction<typeA>(listA);
someFunction<typeB>(listB);
【解决方案2】:
如果您想对不同类型(访问方法、属性)做更多事情。
private void someFunction<T>(List<T> list) where T : MyType, new()
{
/*elementwise reflection stuff*/
var instance = new T();
Type type = instance.GetType();
instance.MyMethod();
}
public class MyType
{
public void MyMethod()
{
}
}
您可以进一步扩展它..(例如,使用 MyType 作为 typeA 和 typeB .. 等的概括)