【发布时间】:2021-12-20 06:26:14
【问题描述】:
我需要在 Unity 中声明一个列表数组变量。数组大小是固定的,它是 5。我的代码按我的意愿工作,但我认为必须有更好、更短的方法来做到这一点:
public List<GameObject>[] charactersOnBoardSortedP1 = new List<GameObject>[] {new List<GameObject>(), new List<GameObject>(), new List<GameObject>(), new List<GameObject>(), new List<GameObject>() };
我试着这样做:
public List<GameObject>[] charactersOnBoardSortedP1 = new List<GameObject>[5];
但我有一个错误:对象引用未设置为对象的实例。
有什么方法可以更简单地声明我的变量吗?我的意思是如果我的阵列只有 5 个插槽就可以了,但如果是 100 个呢?在声明中复制 new List... 100 次有点愚蠢。
【问题讨论】:
-
您可以使用目标类型。 #9?功能例如。 sharplab.io/… - docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
-
任何东西的数组。您声明数组并制作正确大小的数组之一。然后,如果它具有基于类的对象,则需要用新创建的类对象填充数组。循环通常是最简单的设置方法
-
@Jim Hopper - 您可以接受适合您解决方案的答案
-
为什么不使用循环?
-
基本上这是 What is a NullReferenceException and how do I fix it 的副本,因为您创建了一个数组但没有初始化列表实例