• Effective C# 学习笔记(十二) 多用成员变量初始化,少用指定赋值


    由于构造函数重载的原因,你在类中声明的成员变量,很容易忘记在新的重载构造函数中初始化,所以建议你在声明时就初始化之。Initializers(类构造器)会在基类的构造函数执行前执行你声明的成员变量的初始化。

     

    但也有三种例外情况

    1. 将成员变量初始化为 0null时,由于.net运行机制在运行时会默认将所有未付值的对象默认设置为0null,所以没有必要再做一次赋值来做无用的事。
    2. 你要多次为同一成员变量初始化的时候,如implicit field隐式字段

    public class MyClass2

    {

    // declare the collection, and initialize it.

    private List<string> labels = new List<string>();

    MyClass2()

    {

    }

    MyClass2(int size)

    {

    labels = new List<string>(size);//多次初始化了 label,因为之前的字段声明会在构造器前执行

    }

    }

     

    //书上建议如下初始化隐式字段

    public class MyClass2

    {

    // declare the collection, and initialize it.

    private List<string> labels;

    MyClass2()

    {

    labels = new List<string>();

    }

    MyClass2(int size)

    {

    //这里为什么写了两次初始化?没看懂?个人觉得是笔者写错了 :)

    labels = new List<string>();

    labels = new List<string>(size);

    }

    }

    1. 当你需要在初始化时,在类的内部处理异常的时候,你需要去做
  • 相关阅读:
    redis数据结构
    django内置密码原理
    生成图片验证码
    如何封装VUE的axios请求
    杭电1717小数化分数2
    杭电2504 又见GCD
    杭电 2136 Largest prime factor(最大素数因子的位置)
    Linux终端的一些快捷键命令
    杭电 1772 cake
    杭电ACM 1713 相遇周期
  • 原文地址:https://www.cnblogs.com/haokaibo/p/2098727.html
Copyright © 2020-2023  润新知