C#不能隐式转换类型';T';至';对象[*,*]和#x27;

C#不能隐式转换类型';T';至';对象[*,*]和#x27;,c#,generics,type-conversion,implicit-conversion,C#,Generics,Type Conversion,Implicit Conversion,我有一个方法,我正在尝试更新以接受多种类型的数据,所以我使用了泛型。我使用了两种不同的类型,但是传入的一种类型是object[,]。当我尝试将数据设置为该类型时,在转换时出现以下错误: 无法将类型“T”隐式转换为“object[*,*]” 代码非常简单,包括: object[,]数据=(T)(object[,])元素 有什么想法吗?您看到的问题是,由于T既不是从对象[,]派生的,也不是实现的,因此代码实际上不知道如何执行转换。这是因为在后台,转换可以是box或unbox派生类型,也可以调用con

我有一个方法,我正在尝试更新以接受多种类型的数据,所以我使用了泛型。我使用了两种不同的类型,但是传入的一种类型是
object[,]
。当我尝试将数据设置为该类型时,在转换时出现以下错误:

无法将类型“T”隐式转换为“object[*,*]”

代码非常简单,包括:

object[,]数据=(T)(object[,])元素


有什么想法吗?

您看到的问题是,由于
T
既不是从
对象[,]
派生的,也不是实现的,因此代码实际上不知道如何执行转换。这是因为在后台,转换可以是box或unbox派生类型,也可以调用conversion方法以返回所需的输出类型


由于使用的是泛型,因此可以使用语句约束类型。只要约束类型(或更派生的类型)定义并显式转换为(或派生自)
object[,]
,您就能够执行转换。

这不是一个好的做法,但这将使它编译
object[,]数据=(object[,])(object)元素
如果使用泛型,为什么在泛型方法中硬编码类型?我觉得有一个更大的问题。什么是
T
?如果遵循通常的命名约定,则它可能是泛型类/结构或泛型方法的类型参数。但是没有从
T
到任何数组类型的转换。而
元素的类型是什么<代码>T
?请提供足够的代码,以便我们重现您的问题:例如什么是
元素
T
,等等。您需要更好地解释代码的意图。你能给我们看更多的代码,或者是一个有用的例子吗。