将Class作为参数传递

时间:2014-05-14 11:18:04

标签: c#

我有特定的类要传递给方法,我想在方法中使用该类并返回该类的版本。

protected Type [] Convert(ArrayList list, MyPersonalClass)
{
    MyPersonalClass[] resArray = (MyPersonalClass[])list.ToArray(typeof(MyPersonalClass));
    return resArray;
}

1 个答案:

答案 0 :(得分:2)

您希望使用Generics,以便直接转换您的示例:

public T[] Convert<T>(ArrayList list)
{
    return (T[])list.ToArray(typeof(T));
}

然后你可以使用它:

Convert<MyPersonalClass>(l);

这样做的问题在于无法保证ArrayList中的对象可以转换为MyPersonalClass

相反,您最好使用MyPersonalClass的通用列表,然后如果需要数组,则可以在其上调用ToArray()

List<MyPersonalClass> list = new List<MyPersonalClass>();
list.Add(new MyPersonalClass());

var arr = list.ToArray();