尝试从列表中分配数组时,未将对象引用设置为对象的实例
本文关键字:设置 对象引用 对象 实例 列表 分配 数组 | 更新日期: 2023-09-27 18:20:24
我正试图创建一个二维数组,该数组以字符串形式保存注册表的根键及其子键,所以我希望该数组是
string[rootkeys][subkeys]
但出于某种原因,当涉及到分配时,我得到了NullReferenceException
:
对象引用未设置为对象的实例。
这是我的密码。关于我做错了什么有什么想法吗?
public string[][] getAllRootSubKeys(){
int i = 0;
int h = 0;
var allRoots = new List<RegistryKey> {Registry.ClassesRoot, Registry.CurrentUser, Registry.LocalMachine, Registry.Users, Registry.CurrentConfig};
string[][] rootAndKey = null;
foreach (var root in allRoots) {
rootAndKey[i][h] = root.GetSubKeyNames()[h];
h++;
if (h == root.SubKeyCount) {
i++;
h = 0;
}
}
return rootAndKey;
}
在尝试将元素分配给rootAndKey
之前,您永远不会初始化它。您的循环逻辑对我来说也有点有趣。我猜您需要这样的东西:
string[][] rootAndKey = new string[allRoots.Count][];
for(var i = 0; i < allRoots.Count; i++)
{
var subkeys = root.GetSubKeyNames();
rootAndKey[i] = new string[subkeys.Length];
for(var h = 0; h < subkeys.Length; h++)
{
rootAndKey[i][h] = subkeys[h];
}
}