获取现有对象的新实例,然后将其传递给方法

时间:2018-04-20 13:52:53

标签: c# class generics reflection types

我不太确定如何说出我的问题(这可能就是为什么我无法有效地搜索答案)。我有一个方法:

public void spawnDisaster(new disaster) 
{
    //code for starting a new disaster
}

它使用一个名为灾难的自定义类,我已经像这样扩展了:

public class di_flood : disaster 
{
    desc = "Oh no, a flood!";
}

public class di_tsunami : disaster 
{
    desc = "It's a tsunami, run!";
}

我希望灾难能够创建自己的副本。像这样:

public class disaster 
{
   public void makeANewOneOfThese() 
   {
      spawnDisaster(new this.getType() );
   }
}

但是,当然,这不起作用:getType()返回一个Type,而不是实际的类,所以我不能从中创建一个新实例。

我一直在谷歌搜索过去2个小时试图让它工作,我知道它与反射有关,可能涉及泛型,但现在我只是困惑。感觉可能有一种简单的(ish)方法可以做到这一点,但我无法弄明白。

0 个答案:

没有答案