如何获取对象的类型,然后使用此类型创建对象数组

时间:2013-09-02 16:26:03

标签: c# arrays types

class baker: unit {}
class killer: unit{}

void Round(unit first, unit second, byte fA, byte sA)
{

    how to create array of "unit first" type objects?  

}

我传递面包师或杀手作为参数,我想在方法中克隆这个特定的类,但我不明白如何

1 个答案:

答案 0 :(得分:2)

对于简单的方法:

if(first is baker)
{
// Create array of bakers
}

或者您可以像这样使用泛型:

void Round<T>(T first, T second,...)
{
// Create the list of the type
new List<T>();

或者您可以使用:

Array.CreateInstance(first.GetType(), length);

在更糟糕的情况下,您可以使用first.GetType()并使用反射来创建数组。 但它有点复杂