Ref*_*din 3 .net c# oop inheritance
我有以下类(POCO的?),其中第二个应该扩展第一个.
我猜我需要一个引用基本实例的属性,在这种情况下是Business,但是我还需要一个构造函数来"填充"该属性,因为保险公司在没有业务的情况下不能存在吗?
我对此的参考是底层数据库,其中tblInsuranceCompany
对列的FK约束BusinessID
为tblBusiness
.
另外,我在OOP上很新,所以请指出你可能看到"错误"的任何其他内容.谢谢,
public class Business
{
public int BusinessID { get; set; }
public BusinessType BusinessType { get; set; }
public string Name { get; set; }
public string ContactName { get; set; }
public string EmailAddress { get; set; }
public DateTime? InactiveDate { get; set; }
public IList<Address> Addresses { get; set; }
public IList<Phone> Phones { get; set; }
public string DisplayString { get { return this.ToString(); } }
public override string ToString()
{
return String.Format("{0}: {1}", Name, BusinessType.TypeDescription);
}
}
public class InsuranceCompany : Business
{
public int InsuranceCompanyID { get; set; }
public Business Business { get; set; }
public InsuranceCompanyType InsuranceCompanyType { get; set; }
public string DRIInsuranceCompanyNumber { get; set; }
public string DisplayString { get { return this.ToString(); } }
public override string ToString()
{
return String.Format("{0}: {1}", Business.Name, InsuranceCompanyType.TypeDescription);
}
}
Run Code Online (Sandbox Code Playgroud)
我猜我需要一个引用基本实例的属性,在这种情况下是Business,
不,你不需要这个.保险公司是业务.它还具有Business
继承自的所有属性Business
.您不需要属性来引用它,因为对InsuranceCompany
对象的引用将与对"business"部分的引用相同(它们是同一个对象).
但是,我还需要一个构造函数来"填充"该属性,因为保险公司在没有业务的情况下不能存在吗?
所有类都获得构造函数 - 当您构建InsuranceCompany时,它也将有效地构建"业务".
话虽这么说,您可能需要一个将相关信息传递给基类构造函数的构造函数 - 但如果您不提供一个,编译器将为您创建一个默认构造函数.