【发布时间】:2014-12-12 21:17:53
【问题描述】:
我有一个方法正在尝试更新以接受多种类型的数据,因此我使用了泛型。我让它与几种不同的类型一起工作,但传入的一种类型是object[,]。当我尝试将数据设置为该类型时,我在转换时收到以下错误:
Cannot implicitly convert type 'T' to 'object[*,*]'
代码很简单:
object[,] data = (T)(object[,])element;
有什么想法吗?
【问题讨论】:
-
不是一个好习惯,但这将使它编译
object[,] data = (object[,])(object)element; -
如果您使用泛型,为什么在泛型方法中硬编码类型?我觉得有一个更大的问题。
-
什么是
T?如果您遵循通常的命名约定,它可能是泛型类/结构或泛型方法的类型参数。但是没有从T到任何数组类型的转换。element的类型是什么?T? -
请提供足够的代码以便我们重现您的问题:例如什么是
element、T等。 -
你需要更好地解释代码的intent是什么。您能否向我们展示更多代码,或许还有一个可行的示例。
标签: c# generics type-conversion implicit-conversion