使用对象

时间:2013-10-02 09:00:47

标签: c# object

考虑变量ob4,如图variable ob4

所示

现在:我怎样才能达到ob4 [0] - > [0,2]

var o=ob4[0];
double[,] p=(double[,]) o[0,0];

线( double [,] p =(double [,])o [0,0] ;)给出以下错误:
无法将[]索引应用于“object”类型的表达式

2 个答案:

答案 0 :(得分:9)

您需要先将o[0, 0]投射到object[,]

var o = (object[,]) ob4[0];
double[,] p = (double[,]) o[0, 0];

如果你可以避免在编译时让所有这些嵌套的多维数组都具有如此少的类型信息会更好 - 你没有给我们太多的上下文,但是如果你可以改变你的对象模型,它会帮助很多。

答案 1 :(得分:1)

好吧,从错误消息可以看出,运行时认为oobject,而不是object[,]。因此,您可能希望将代码更改为:

double[,] = (double[,])((object[,])o)[0,0];

现在运行时知道o应该被视为object[,]