我正在尝试学习如何访问System.Object
中的数据。有一个Visual Studio 2015 c#.net应用程序,它使用以下代码调用Matlab函数:
object result = null;
matlab.Feval("matlabTest", 1, out result);
如果我在调试时将鼠标悬停在变量result
上,则显示为
result|{object[1]}
。如果我向下滑动以进一步扩展result
,则会显示为[0]:{object[53,13]}
。然后当进一步向下滑动时,我可以看到二维数组的字符串和双精度数。因此,调试器可以在“结果”中查看和显示有效数据,但我不知道如何在运行时访问字符串和双精度数。任何建议将不胜感激。
答案 0 :(得分:0)
根据您提供的信息,您需要执行以下操作:
object[] first_array = (object[])result;
object[,] second_array = (object[,])first_array[0];
然后像这样访问第二个数组:
var item = second_array[5,5];
另一种方法是像这样使用dynamic keyword:
dynamic dynamic_result = result;
var test_value = dynamic_result[0][5, 5];
答案 1 :(得分:0)
您可以随时致电<variable>.GetType()
查看其类型,然后根据此信息投放。
答案 2 :(得分:-1)
访问对象的简单方法是使用typeof()来获取它的类型,并使用Reflection来访问它的数据。