• 编写高质量代码改善C#程序的157个建议——建议93:构造方法应初始化主要属性和字段


    建议93:构造方法应初始化主要属性和字段

    类型的属性应该在构造方法调用完毕前完成初始化工作。如果字段没有在初始化器中设置初始值,那么它就应该在构造方法中初始化。

    类型一旦被实例化,那么它就应该被视为具有完整的行为和属性。

        class Company
        {
            Employee specialA = new Employee() {Name = "Mike"};
            Employee specialB;
            public Employee CEO { get; set; }
    
            public Company()
            {
                CEO = new Employee() {Name = "Steve"};
                specialB = new Employee() {Name = "Rose"};
            }
        }

    在构造方法中,必须首先为CEO赋值。因为只要存在公司实体,那么它首先就会有一个CEO。specialA的初始化如下所示:

     Employee specialA = new Employee() {Name = "Mike"};

    上面演示的是一个字段初始化。实际上,初始化器也属于编译器的语法糖,它在经编译后,在构造方法的最开始处执行。也就是说,可以将初始化器理解为构造方法的一部分。

    类型的其他引用类型字段也应该在构造器中初始化,比如specialB,因为需要保证类型的其他地方用到该字段的时候不会因为它是null而产生混淆。

    转自:《编写高质量代码改善C#程序的157个建议》陆敏技

  • 相关阅读:
    「SHOI2015」脑洞治疗仪
    LOJ 数列分块入门 8
    CF932F Escape Through Leaf
    NOIP2021游记总结
    [HEOI2016/TJOI2016]序列
    【模板】动态树(Link Cut Tree)
    LG P2839 [国家集训队]middle
    JZOJ 7377.欢乐豆
    JZOJ 7392. 【2021.11.17NOIP提高组联考】数 (ds)
    LOJ 数列分块入门 6
  • 原文地址:https://www.cnblogs.com/jesselzj/p/4745058.html
Copyright © 2020-2023  润新知