在Add
方法中运行此代码时,我在标题中收到错误。 Add
方法应将游戏对象添加到名为queue的列表中
GameObject
是一个班级
GameManager
也是一个班级
queue
是一个列表。
我认为这是唯一相关的代码。
static void Main()
{
GameObject obj1 = new GameObject();
GameManager manager1 = new GameManager();
obj1.name = "First";
manager1.Add(obj1);
manager1.Process();
}
public void Add(GameObject gameObject)
{
gameObject.initialize = true;
queue.Add(gameObject);
}
答案 0 :(得分:3)
尝试初始化字段“queue”:
它可能从未初始化,因此Object Reference not set to an instance of an object error
错误,Add
方法的结构可能与queue
对应。
此外 - 我会考虑将队列重命名为有意义的名称,因为它目前是欺骗性的。
这是一个初始化建议,它适用于您在问题中描述的List,但可以轻松修改以对应任何IEnumerable
,也可以在之前执行的不同方法中完成Main
(再次,根据您的代码看起来似乎不太可能):
private List<GameObject> queue; // assuming it's private, doesn't really matter either way.
static void Main()
{
queue = new List<GameObject>(); // the missing line
GameObject obj1 = new GameObject();
GameManager manager1 = new GameManager();
obj1.name = "First";
manager1.Add(obj1);
manager1.Process();
}
public void Add(GameObject gameObject)
{
gameObject.initialize = true;
queue.Add(gameObject);
}
答案 1 :(得分:1)
您必须先初始化队列列表
答案 2 :(得分:0)
您需要调试代码。
我假设您使用的是Visual Studio,如果是,请执行以下操作:
转到“调试”菜单。
点击例外...选项。
应出现以下对话框:
注意:选中Common Language Runtime Exceptions复选框。
单击“确定”后,现在当您的代码或.NET Framework抛出异常时调试代码时,调试器将在引发异常的行上停止。这样可以更容易地找到“破坏”的地方。