如何创建属性类型为其他类的类实例?以含Telephone数组的Person类为例
创建Person类实例的解决方法
你代码的核心问题是:Person实例化后,Phones是数组引用类型,默认值为null,直接对p.Phones[0]赋值会触发空引用异常,按以下步骤操作即可:
- 先给
Person的基础属性赋值 - 初始化
Phones数组,提前指定可存储的电话号码数量 - 创建
Telephone类实例,赋值后存入数组对应下标位置
完整可运行示例代码
public class Person { protected int id; public string Name { get; set; } public long Cpf { get; set; } public Telephone[] Phones { get; set; } } public class Telephone { protected int id; public int Number { get; set; } public int Ddd { get; set; } } public static void Main(string[] args) { // 实例化Person对象 Person p = new Person(); // 基础属性赋值示例 p.Name = "测试用户"; p.Cpf = 12345678901; // 初始化Phones数组,长度按你需要存储的号码数量设置,这里示例存1个号码 p.Phones = new Telephone[1]; // 实例化Telephone对象,赋值后存入数组 p.Phones[0] = new Telephone() { Ddd = 010, Number = 12345678 }; }
补充优化建议
如果电话号码的数量不固定,更推荐用List<Telephone>代替数组,无需提前指定长度,增删操作更灵活:
// 修改Person类的Phones属性定义 public List<Telephone> Phones { get; set; } // 初始化与赋值写法 p.Phones = new List<Telephone>(); // 可直接Add多个号码 p.Phones.Add(new Telephone(){ Ddd = 010, Number = 12345678 }); p.Phones.Add(new Telephone(){ Ddd = 021, Number = 87654321 });
内容的提问来源于stack exchange,提问作者Jurandi Novais
相关产品推荐
相关产品推荐

