我以为对象意味着所有数据类型,但由于某种原因它不起作用。
我做了一个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
。我该如何解决这个问题或我做错了什么?
最佳答案
它们之间没有隐式转换,并且数组方差技巧仅适用于引用类型的数组。 byte[]
不符合此条件。
您可能想改用泛型:
public static string[] ToStringArray<T>(this T[] buffer)
{
//code here.
}