我正在研究一个项目ASP.NET MVC
.我一直在寻找关于这个主题的一些学习资源,我遇到了一个我正在寻找澄清的场景.假设:
public class Foo { public int Id { get; set; } public string FooName { get; set; } public virtual Bar Bar { get; set; } }
和
public class Bar { public Bar() { this.Foos = new List; } public int Id { get; set; } public string BarDesc { get; set; } public virtual List Foos { get; set; } }
我的意思是,它与没有构造函数的模型Bar有什么不同?请忽略实体中属性(如果有)或可能的关系中的任何错误,因为我只想澄清在模型中有构造函数.谢谢!
使用您显示的构造函数,Bar.Foos
将是一个类型为Foo的空列表.
没有构造函数,Bar.Foos
将为null(除非您在其他地方初始化它).
你在这两行之间看到的是相同的差异:
Listtest1 = null; List test2 = new List ();
假设你正在使用C#6,另一种在没有构造函数的情况下初始化它的方法是:
public class Bar { public int Id { get; set; } public string BarDesc { get; set; } public virtual ListFoos { get; set; } = new List (); }
其中的3个技巧,你选择将是你的,根据你是否总是希望属性初始化或没有,如果你有多个构造函数,你觉得看起来更好,你怎么觉得空的集合引用VS空集等.