我的意思是,aPerson.PhoneNumber.Number
是一个字符串,所以它应该取字符串类型的值。了解有关系实现C#
再次,在代码中,aPerson.PhoneNumber = phoneNumber
aPerson.PhoneNumber
和phoneNumber
都是PersonPhoneNumber
类型的对象。
的行
aPerson.PhoneNumber.Number = "Test Phone";
工作后,实际上改变了什么?
任何人都可以请告诉我为什么这两行在编译时显示错误?
class PersonPhoneNumber
{
public string Number { get; set; }
}
class Person
{
public string Name { get; set; }
public PersonPhoneNumber PhoneNumber { get; set; }
}
class Program
{
static void Main(string[] args)
{
Person aPerson = new Person();
aPerson.Name = "Test Name";
aPerson.PhoneNumber.Number = "Test Phone";//Error: System.NullReferenceException : Object reference not set to an instance of an object.
PersonPhoneNumber phoneNumber = new PersonPhoneNumber();
aPerson.PhoneNumber.Number = "Test Phone";//Error: System.NullReferenceException : Object reference not set to an instance of an object.
aPerson.PhoneNumber = phoneNumber;
aPerson.PhoneNumber.Number = "Test Phone"; // This does not show any error
Console.WriteLine(aPerson.Name);
Console.WriteLine(aPerson.PhoneNumber.Number);
}
谢谢安迪。现在很明显。 – Tareq