gpt4 book ai didi

c# - 初始化集合属性好不好

转载 作者:行者123 更新时间:2023-12-03 22:58:35 28 4
gpt4 key购买 nike

初始化集合属性好不好?

例如,我的课是,

 public class Part
{
public int Id { get; set; }
public int PartTypeId { get; set; }
public IList<Child> Instructions { get; set; }
}

像这样初始化指令是个好主意吗?:
public IList<Child> Instructions { get; set; } = new List<Child>();
  • 最佳实践是什么,默认初始化或不初始化子集合属性?
  • 考虑延迟初始化好不好?
  • 最佳答案

  • 好吧,如果你不初始化你的集合,你将无法使用它们。如果你要使用一个集合,不妨尽快初始化它,这样你就可以使用它而不必担心空引用。
  • 不需要懒惰地初始化一个空集合。一个空的集合不需要太多的工作来初始化,并且一旦初始化也不会占用太多的内存。即使您最终没有在应用程序的生命周期内填充它,它也不会对性能产生可衡量的影响。

    非空集合有点不同。如果它是一个小的原始值集合,它可能也不会产生太大的影响。但是,如果这将是启动时不需要的大型复杂对象的集合,那么懒惰地这样做可能是明智的。无论您是否使用 new在属性声明中并单独填充它,或 new按需一次填充并填充它是一个偏好问题(以及您的应用程序是否依赖于存在的集合 - 大多数应用程序询问是否填充了集合,这让我们回到我的空集合)。

  • 正如 Damien_The_Unbeliever 所指出的,您可能不希望您的集合属性可以由类本身以外的任何人设置,如果有的话。您的所有集合操作都将在集合本身上执行,而无需实际更改(或删除)集合,因此不需要 setter ,实际上应该省略:
    public IList<Child> Instructions { get; } = new List<Child>();

    关于c# - 初始化集合属性好不好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51981135/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com