c# - 为什么 "object[]"不起作用?

标签 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[] 不包含定义 ToStringArray

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

最佳答案

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

您可能想改用泛型:

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

关于c# - 为什么 "object[]"不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48552891/

相关文章:

c# - 找不到路径的一部分 - ASP.net/C# 图片上传

java - 使用选择排序方法对二维数组进行排序并将结果写入文件

python - 使用 numpy 数组时如何消除 for 循环并使用列表理解?

php - 在实例创建时调用对象的方法

c# - 如何使用 c# asp.net 上传多张图片(从一个文件夹)?

c# - 每个 parent 只选择 1 个 child

java - 使用 Java 在 MongoDB 中插入字符串数组

javascript - 如何从 HTML 访问 CSV 文件并将其保存在数组中(仅使用 Javascript)

javascript - 我在 JavaScript 中遇到了未定义的问题,并且不明白为什么

c++ - 如何使用运算符<<打印类对象