【发布时间】:2017-08-27 00:11:30
【问题描述】:
我正在尝试为对象 [] 创建一个深度反转。我使用类型检查来查看第一个对象内是否还有另一个 object[],如果有,则递归到该数组中。当没有更多的 object[] 进入时,我们反转数组。这似乎可以扭转整个事情,但是当我将 object[] 传递给找到的方法时出现错误。
这是我的代码:
private static void deepReverse(object[] argArr)
{
for(var i = 0; i < argArr.Length; i++)
{
if (argArr[i].GetType() == typeof(object[]))
{
deepReverse(argArr[i]);
}
}
Array.Reverse(argArr);
}
在 deepReverse(argArr[i]) 处出现错误“无法从 'object' 转换为 'object[]。'
我不明白这一点,因为这是类型检查所做的。 if 语句正在检查以确保索引确实包含“对象 []”。如果它发现该索引包含一个“object[]”,我为什么不能将它作为 object[] 传递?
这是一个小的辅助方法来帮助处理其他事情,这就是我使用 object[] 而不是更具体的东西的原因。在这种情况下,我需要使用该类型。
【问题讨论】: