【发布时间】:2016-12-10 09:48:01
【问题描述】:
所以我想要实现的本质上是将一个类型传递给一个方法并从该方法返回一个该类型的 IEnumerable。
这是我迄今为止所管理的:
class Program
{
static void Main(string[] args)
{
var x = PassType(typeof(Test));
}
public static IEnumerable<dynamic> PassType(Type destType)
{
var testInstance = new Test() { Name = "Greg", Age = 45, IsSomething = false };
var destinationList = ((IEnumerable<object>)Activator.CreateInstance(typeof(List<>).MakeGenericType(new[] { destType }))).ToList();
destinationList.Add(testInstance);
return destinationList;
}
}
public class Test
{
public string Name { get; set; }
public int Age { get; set; }
public bool IsSomething { get; set; }
public Test()
{
}
}
但是,这显然是返回一个动态类型的 IEnumerable,我想知道是否有办法返回一个类型为 Test 的 IEnumerable
提前致谢
【问题讨论】:
-
为什么不使用泛型?
IEnumerable<Test> x = PassType<Test>(); -
@TimSchmelter 我猜 OP 在编译时不知道类型。