对象引用未设置为对象的实例

本文关键字:实例 对象 设置 对象引用 | 更新日期: 2023-09-27 18:36:11

我正在得到

对象引用未设置为对象的实例

尝试在我的 main 方法中调用 GetPersonName() 方法时出错。

任何人都可以解释为什么会发生此错误吗?

这是我的代码。谢谢

//My Class
class Program
{
    // Main Method
    static void Main(string[] args)
    {
        DMO dmo = GetPersonName();
        Console.Write(dmo.PersonArray[0].Name);
        Console.ReadKey();
    }
    private static DMO GetPersonName()
    {
        DMO dmo = new DMO();
        dmo.PersonArray[0] = new Person { Name = "XXXXXX" }; // Object reference not set to an instance of an object.
        return dmo;
    }
}

// My Data Model Object
public class DMO
{
    private Person[] _personArray;
    public Person[] PersonArray
    {
        get { return _personArray; }
        set { _personArray = value; }
    }
}
public class Person
{
    private string _name = "";
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
}

对象引用未设置为对象的实例

DMO类中,您永远不会实例化您的_personArray

当实例化DMO _personArraynull时,所以这段代码:

dmo.PersonArray[0]

失败,因为dmo.PersonArray null,并且无法访问其任何成员。

您需要实例化整个数组:

dmo.PersonArray = new Person[] { new Person { Name = "XXXXXX" } };

这是因为您的_personArray数组为 null,它将始终返回该错误,例如,您可以做的是给它一个默认的初始化,例如:

private Person[] _personArray = new Person[2];