当前位置:  开发笔记 > 编程语言 > 正文

创建一个n大多数未知类型的新实例

如何解决《创建一个n大多数未知类型的新实例》经验,为你挑选了1个好方法。

我想编写一个通用方法来创建指定Type的新实例.我试过了

protected T CreateNew()
    where T : new()
{
    return new T();
}

这是有效的,但前提是我在编译时指定了类型,就像

var x = CreateNew();

关键是,我需要做这样的事情

ISomeInterface inter;
if (selection == 1)
    inter = new SomeClass();
else
    inter = new SomeClass2();
// ...
ISomeInterface inter2 = CreateNew();

SomeClass实现ISomeInterface.但由于CreateNew()需要指定实际类型,因此无法编译.我不知道是否可以在运行时提供类似的东西,但上面的代码无法编译.

所以我有一个未知引用类型的实例,我需要创建几个相同类型的实例.

有没有人知道一种技术来实现这种行为?



1> Jon Skeet..:

泛型的要点是提供一种机制,当在编译时知道类型时,可以为不同类型重用代码.在这种情况下,您在编译时不知道类型.

我建议你用 Activator.CreateInstance(inter.GetType());

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有