如果我有一个简单的实用函数,可以将一个数组复制到一个新数组中:
编译器报错说“无法将int[]转换为object[]”。这是可以预料的,因为我的CopyTo函数需要一个对象数组而不是一个整数数组。
我该如何更改CopyTo的声明,以便它动态地接受和返回任何类型的数组?我相信泛型是一种方法(虽然我对此不太熟悉),因此我尝试了:
但编译器无法将T识别为一种类型。
public static object[] CopyTo(object[] original, int startIndex, int endIndex)
{
List<object> copied - new List<object>();
for (int i = startIndex; i <= endIndex; i++)
{
copied.Add(original[i]);
}
return copied.ToArray();
}
我希望能够像这样调用它:
int[] newThing = CopyTo(new int[] { 10, 9, 8, 7, 6 }, 2, 4);
编译器报错说“无法将int[]转换为object[]”。这是可以预料的,因为我的CopyTo函数需要一个对象数组而不是一个整数数组。
我该如何更改CopyTo的声明,以便它动态地接受和返回任何类型的数组?我相信泛型是一种方法(虽然我对此不太熟悉),因此我尝试了:
public static T[] CopyTo(T[] original, int startIndex......)
但编译器无法将T识别为一种类型。
... CopyTo<T>(...)
。 - Anton Gogolev