对象引用未设置为对象的实例
本文关键字:实例 对象 设置 对象引用 | 更新日期: 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
_personArray
是null
时,所以这段代码:
dmo.PersonArray[0]
失败,因为dmo.PersonArray
null
,并且无法访问其任何成员。
您需要实例化整个数组:
dmo.PersonArray = new Person[] { new Person { Name = "XXXXXX" } };
这是因为您的_personArray
数组为 null,它将始终返回该错误,例如,您可以做的是给它一个默认的初始化,例如:
private Person[] _personArray = new Person[2];