如何访问System.Object中的数据?

时间:2016-01-14 21:16:08

标签: c# .net matlab reflection

我正在尝试学习如何访问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]}。然后当进一步向下滑动时,我可以看到二维数组的字符串和双精度数。因此,调试器可以在“结果”中查看和显示有效数据,但我不知道如何在运行时访问字符串和双精度数。任何建议将不胜感激。

3 个答案:

答案 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来访问它的数据。