为什么"对象[]"不起作用?

XSM*_*SMD 1 c# arrays object

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

我创建了一个ToStringArray方法,将任何类型的数组转换为字符串数组string[],我这样写,sins它转换为任何类型:

public static string[] ToStringArray(this object[] buffer)
{
//code here.
}
Run Code Online (Sandbox Code Playgroud)

但问题是,如果我有一个像这样的数组:

byte[] x = new byte[] { 1, 2, 3, 4, 5 };
Run Code Online (Sandbox Code Playgroud)

然后尝试做:

string[] s = x.ToStringArray();
Run Code Online (Sandbox Code Playgroud)

我收到一个错误byte[] does not contain the definition ToStringArray.

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

Mar*_*ell 6

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

您可能想要使用泛型:

public static string[] ToStringArray<T>(this T[] buffer)
{
//code here.
}
Run Code Online (Sandbox Code Playgroud)