zoukankan      html  css  js  c++  java
  • 《C#高效编程》读书笔记12-使用推荐成员初始化器而不是赋值语句

    通常来说类都有不止一个构造函数。随着时间推移,成员变量的增加,构造函数的个数也会不断的增加。预防这种情况的最好方法是,在声明变量的时候就进行初始化,而不是在每个构造函数中进行。

    //初始化变量时声明
    public class MyClass
    {
        private List<string> labels = new List<string>();
    }
    

    这样一来,无论MyClass类型添加多少个构造函数,labels变量都可以正确的初始化。编译器将在每个构造函数的最开始位置生成代码来执行你为实例成员变量定义的所有初始化器。
    使用初始化器是一种最简单的、能够避免类型中存在未初始化变量的做法,但以下3种情况,应避免使用初始化器:

    1. 想初始化对象为0或null时。系统会默认初始化对象为0或null,若自己再进行赋值,就多此一举
    2. 需要对同一个对象执行不同的初始化方式。使用初始化器语法的前提是,所有的构造函数都会将该变量设为同一个值。
    //以下代码就会创建了2个List,并把第一个List立即变成垃圾
    public class MyClass
    {
        private List<string> labels = new List<string>();
    
        public MyClass()
        {
    
        }
        public MyClass(int size)
        {
            labels = new List<string>(size);
        }
    }
    
    1. 需要方便进行异常处理。初始化器无法用try包裹。对象初始化器执行的过程中产生的所有异常都会传递到对象外。在类的内部无法进行修复
  • 相关阅读:
    背景颜色的渐变设置--实现丰富多彩的背景效果
    CSS-sprit 雪碧图
    背景图片的相关设置
    关于阿里云图标的使用 iconfont
    HTML四种定位-粘滞定位
    HTML四种定位-固定定位
    HTML四种定位-绝对定位
    HTML四种常见的定位-相对定位
    水平居中
    CentOS8更换国内镜像源
  • 原文地址:https://www.cnblogs.com/kw13202/p/6877329.html
Copyright © 2011-2022 走看看