我有一个方法,我正在尝试更新以接受多种类型的数据,所以我使用了泛型。我使用了几种不同的类型,但传入的一种类型是object[,]
。当我尝试将数据设置为该类型时,我在转换时收到以下错误:
Cannot implicitly convert type 'T' to 'object[*,*]'
代码非常简单:
object[,] data = (T)(object[,])element;
有什么想法吗?
答案 0 :(得分:0)
您看到的问题是,由于T
既不来自object[,]
也未实现explicit conversion,因此代码根本不知道如何执行转换。这是因为在引擎盖下,转换了box或unbox派生类型,或调用转换方法以返回所需的输出类型。
由于您使用的是Generic,因此可以使用where语句约束类型。只要受约束的类型(或更多派生类型)定义并显式转换为(或派生自)object[,]
,您就可以执行转换。