提问人:Douar Gwenn 提问时间:8/2/2023 最后编辑:Douar Gwenn 更新时间:8/2/2023 访问量:82
如何达到嵌套在对象中的对象的值?
How to reach the value of an object nested within an object?
问:
我正在以某种方式生成一个包含另一个对象结构的 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'
答:
0赞
Rand Random
8/2/2023
#1
根据您上次的编辑,您的数组似乎是这样的:
//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]
将不起作用,因为您没有强制转换为它所在的类型(数组),您不能在 type 的实例上使用objArray[0,0]
[1]
object
Visual Studio 正在 Inside Magic 中执行,并将在内部执行强制转换以访问[1]
在这里你可以找到一个演示:
https://dotnetfiddle.net/VHFPmv
评论
1赞
Douar Gwenn
8/2/2023
它就像一个魅力!你非常勤奋。非常感谢您非常迅速和有见地的回答。我非常感谢。
评论
{object[1,1]}
并且不是有效的 C# 类型 - 请发布足够的代码,以便我们可以复制、粘贴并运行来演示问题。object{object[]}