gpt4 book ai didi

c# - c#中的以下数组声明有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 18:30:20 25 4
gpt4 key购买 nike

我正在我的 WinForm 应用程序中构建一个菜单,我正在做类似的事情:

MenuItem[] items = new MenuItem[] { };

之后:

for (int namesIndex = 0; namesIndex < menuNames.Length; namesIndex++)
{
MenuItem item = new MenuItem(menuNames[namesIndex]);

for (int entriesIndex = 0; entriesIndex < menuEntries.GetLength(1); entriesIndex++)
{
item.MenuItems.Add(menuEntries[namesIndex, entriesIndex]);
}

items[namesIndex] = item;
}

并抛出 IndeOutOfRangeException :

enter image description here

在这个恼人的异常之后我修改了数组声明:

 MenuItem[] items = new MenuItem[] { null };

一切都很顺利。

现在的问题是:有没有人知道为什么上面的数组声明有效,而另一个无效?非常感谢

最佳答案

您正在使用数组初始值设定项来构造数组,因此数组的长度将由您提供的数据给出。

第一个示例声明了一个长度为零的数组,因为您没有提供任何元素。 IE。它不能包含任何元素。

第二个示例声明了一个长度为 1 的数组。

关于c# - c#中的以下数组声明有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23478337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com