面试题答案
一键面试以下是使用C#语言实现的代码示例:
class Address
{
public string City { get; set; }
public string Street { get; set; }
}
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Address Address { get; set; }
}
class Program
{
static void Main()
{
Person person = new Person
{
Name = "张三",
Age = 30,
Address = new Address
{
City = "北京",
Street = "长安街"
}
};
}
}
初始化嵌套对象时可能遇到的问题及解决方案:
- 问题:
- 空引用异常:如果在初始化外部对象时,没有正确初始化嵌套对象,在访问嵌套对象的属性时可能会抛出空引用异常。例如,如果写成
Person person = new Person { Name = "李四", Age = 25 };
,然后尝试访问person.Address.City
,就会出现空引用异常,因为person.Address
未初始化。
- 空引用异常:如果在初始化外部对象时,没有正确初始化嵌套对象,在访问嵌套对象的属性时可能会抛出空引用异常。例如,如果写成
- 解决方案:
- 在对象初始化器中正确初始化嵌套对象:如上述代码,在初始化
Person
对象时,同时使用对象初始化器对Address
对象进行初始化。 - 在类的构造函数中初始化:在
Person
类的构造函数中初始化Address
对象,这样可以确保Address
对象始终有值。例如:
- 在对象初始化器中正确初始化嵌套对象:如上述代码,在初始化
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Address Address { get; set; }
public Person()
{
Address = new Address();
}
}
这样即使在使用对象初始化器时没有显式初始化Address
,它也不会为空。