为什么“object []”不起作用?

时间:2018-01-31 23:04:11

标签: c# arrays object

我认为对象意味着所有数据类型,但由于某种原因它不起作用。

我制作了一个ToStringArray方法,将任意类型的数组转换为字符串数组string[],我就像这样编写它,它会转换为任何类型的错误:

public static string[] ToStringArray(this object[] buffer)
{
//code here.
}

但问题是,如果我有一个像:

这样的数组
byte[] x = new byte[] { 1, 2, 3, 4, 5 };

然后尝试做:

string[] s = x.ToStringArray();

我收到一条错误,上面写着byte[] does not contain the definition ToStringArray

我如何解决这个问题或我做错了什么?

1 个答案:

答案 0 :(得分:6)

它们之间没有隐式转换,数组方差技巧仅适用于引用类型数组; byte[]不符合此条件。

你可能想要使用泛型:

public static string[] ToStringArray<T>(this T[] buffer)
{
//code here.
}