C# 对象引用未设置为对象错误的实例

标签 c# nullreferenceexception

<分区>

当我在 Add 方法中运行此代码时,标题中出现错误。 Add 方法应将游戏对象添加到名为队列的列表中。
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);
    }

最佳答案

尝试初始化字段“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);
}

关于C# 对象引用未设置为对象错误的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17557083/

相关文章:

c# - 特定类类型的 Autofac 扫描程序集

c# - 从亚马逊 MWS API 获取销售数据

c# - IsNullOrEmpty 错误是否已在 .NET 3.0 或更高版本中修复?

c# - 为什么将 ComboBox.SelectedValue 设置为 null 会导致 ArgumentNullException?

c# - 我无法在 C# 中正确运行带引号的 powershell 代码

c# - 托管 CLR 与使用 ClrCreateManagedInstance - 有什么好处?

.net - 如何在PresentationFramework中调试NullReferenceException?

c# - Linq查询返回空值时如何返回null?

c# - 为什么 ResourceManager.GetResourceSet 在构建后的第一个请求中返回 null? (C#)

c# - 将 JSON 反序列化为多个属性