zoukankan      html  css  js  c++  java
  • 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. 当你需要在初始化时,在类的内部处理异常的时候,你需要去做
  • 相关阅读:
    MVVM架构~knockoutjs实现简单的购物车
    Thrift架构~目录
    WebApi系列~在WebApi中实现Cors访问
    WebApi系列~基于RESTful标准的Web Api
    MVVM架构~目录
    IOS设计模式学习(20)命令
    MySQL保留关键字
    Eclipse with C++: "Launch failed. Binary not found."
    HTML5 Canvas鼠标与键盘事件
    通过openssh远程登录时的延迟问题解决
  • 原文地址:https://www.cnblogs.com/haokaibo/p/2098727.html
Copyright © 2011-2022 走看看