博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《C#高效编程》读书笔记12-使用推荐成员初始化器而不是赋值语句
阅读量:7222 次
发布时间:2019-06-29

本文共 788 字,大约阅读时间需要 2 分钟。

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

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

这样一来,无论MyClass类型添加多少个构造函数,labels变量都可以正确的初始化。编译器将在每个构造函数的最开始位置生成代码来执行你为实例成员变量定义的所有初始化器。

使用初始化器是一种最简单的、能够避免类型中存在未初始化变量的做法,但以下3种情况,应避免使用初始化器:

  1. 想初始化对象为0或null时。系统会默认初始化对象为0或null,若自己再进行赋值,就多此一举
  2. 需要对同一个对象执行不同的初始化方式。使用初始化器语法的前提是,所有的构造函数都会将该变量设为同一个值。
//以下代码就会创建了2个List,并把第一个List立即变成垃圾public class MyClass{    private List
labels = new List
(); public MyClass() { } public MyClass(int size) { labels = new List
(size); }}
  1. 需要方便进行异常处理。初始化器无法用try包裹。对象初始化器执行的过程中产生的所有异常都会传递到对象外。在类的内部无法进行修复

转载于:https://www.cnblogs.com/kw13202/p/6877329.html

你可能感兴趣的文章
JavaScript HTML DOM
查看>>
吐槽Javascript系列二:数组中的splice和slice方法
查看>>
HashMap剖析之内部结构
查看>>
什么是Javascript函数节流?
查看>>
【技术性】Search知识
查看>>
区块链共识机制优缺点对比都是什么
查看>>
如何进阶一名有竞争力的程序员?
查看>>
seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
查看>>
前端_面试
查看>>
Promise面试题,控制异步流程
查看>>
MQ框架的比较
查看>>
Spark in action on Kubernetes - Playground搭建与架构浅析
查看>>
详解NodeJs流之一
查看>>
Fundebug计费标准解释:事件数是如何定义的?
查看>>
理解这几张图,你就是js小牛了
查看>>
【EOS】Cleos基础
查看>>
iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
查看>>
使用parted解决大于2T的磁盘分区
查看>>
oschina
查看>>
Octave 入门
查看>>