Visual Studio 如何获取嵌套在对象中的对象的值?

pbpqsu0x  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(120)

我以某种方式生成了一个包含另一个对象结构的C#对象。我不知道我如何能掌握它的内容。
我有一个数组,它的值是

{object[1,1]}

字符串
和类型

object[,]


如果我展开它,我得到:

arr[0,0]


有价值

{object[1..1]}


和类型

object{object[]}


和一个结构告诉我们

[1]


有价值(为了论证)

myString


和类型

object{string}


我不确定如何获得正在搜索的封装字符串myString。
从“监视”窗口((-)表示我展开了切换点(+)):

Name            Value             Type
(-) arr            {object[1,1]}      object[,]
 L  (-) [0,0]      {object[1..1]}     object{object[]}
     L  [1]        "myString"         object{string}

arr[0,0][1]        Cannot apply indexing with [] to an  expression of type 'object'

ecr0jaav

ecr0jaav1#

你的数组似乎是这样的,基于你最后的编辑:

//an array with length 1 and index starts with 1 instead of 0
var mySpecialArray = Array.CreateInstance(typeof(object), new [] { 1 }, new [] { 1 });
mySpecialArray.SetValue("myString", 1);

var objArray = new object[,]
{
    {mySpecialArray},
};

字符串


的数据
要在后面的代码中获取值myString,可以使用以下命令

Console.WriteLine(((Array)objArray[0,0]).GetValue(1));


objArray[0,0][1]将不起作用,因为您没有将objArray[0,0]转换为它的类型(数组),您不能在object类型的示例上使用[1]
visual studio正在执行下面的魔术,并将在内部执行强制转换以访问[1]
在这里你可以找到一个演示:
https://dotnetfiddle.net/VHFPmv

相关问题