我正在
尝试在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; }
}
}
答案 0 :(得分:3)
在DMO
课程中,您永远不会实例化_personArray
。
实例化DMO
_personArray
为null
时,此代码为:
dmo.PersonArray[0]
失败,因为dmo.PersonArray
为null
,您无法访问其任何成员。
您需要实例化整个数组:
dmo.PersonArray = new Person[] { new Person { Name = "XXXXXX" } };
答案 1 :(得分:1)
这是因为你的_personArray
数组为null,它将始终返回该错误,例如,你可以做的是给它一个默认的初始化,如:
private Person[] _personArray = new Person[2];