Effective C# Item12:变量初始化器优于赋值语句
来源:互联网 发布:天刀动漫人物捏脸数据 编辑:程序博客网 时间:2024/06/05 15:46
之所以推荐在变量声明时进行初始化,是因为我们定义的类型往往有多个成员变量,这样会导致有多个构造器,这样成员变量和构造器之间很可能做不到同步更新。我们可以通过“在声明变量的同时初始化它们”的方式来解决这个问题。
但是,以下三种情况,是不适合在变量初始化时对其进行赋值的。
- 当我们要将对象初始化为0或者null时,这时在变量初始化时为其赋值是没有错的,但是效率不高。原因是系统默认的初始化机制会在代码执行前将所有变量设置为0,系统在做这种“零初始化”时,使用的是非常底层的CPU指令,而我们所做的任何额外的“零初始化”操作都是多余的。
- 当我们对同一个对象进行多次初始化时,也会降低代码效率,初始化器语法应该只应用于哪些“在所有构造器中使用同样的初始化做法”的对象。
- 在声明变量时,对其进行初始化,那么在初始化的过程中,无法进行异常处理。如果希望在成员变量初始化时,进行异常处理,那么需要将初始化的过程封装在构造函数或者属性中。
变量初始化器是“确保成员变量正确初始化”的最简单的方式,使用变量初始化器,我们无需关心调用哪个构造器,初始化器会在每一个构造器的最前面执行,即使我们今后往类型中添加了新的构造器,初始化器也会确保被执行。只要所有的构造器都是用同样的方式来初始化成员变量,我们都应该选择使用初始化器,这样也会使得我们的代码更易于阅读和维护。
0 0
- Effective C# Item12:变量初始化器优于赋值语句
- Effective C# 原则12:选择变量初始化而不是赋值语句
- Effective C++ Item12 Note
- Effective C#读书笔记(2)Readonly优于Const
- Effective C# :重写优于事件处理器
- Effective C# Item19:定义并实现接口优于继承类型
- Effective C# Item24:声明式编程优于命令式编程
- c语言变量赋值,初始化
- Effective Java Item12-考虑实现Comparable接口
- 【Effective C++学习笔记】Item5-Item12
- effective--复合优于继承
- C#变量的赋值
- c#变量未赋值
- C++中的拷贝构造函数和拷贝赋值操作符+const成员变量初始化(5)---《Effective C++》
- 关于C/C++中switch语句case中变量不能初始化赋值的问题
- C#变量初始化
- c# 变量的初始化
- 结构体变量声明与赋值初始化
- OpenFileDialog 在Win32、MFC、C#的实现
- 2014 多校 第一场
- HDOJ 2012 素数判定
- Hadoop学习记录-2
- java 反射例子汇总
- Effective C# Item12:变量初始化器优于赋值语句
- 关于Mac Pro蓝牙接收移动设备传送文件的问题
- Xcode项目参数配置——Apple LLVM5.0 -Language - ObjectC
- C#调用C++生成的dll获取CPU序列号(一)
- C语言的本质(34)——静态库
- Android获取手机的型号和系统版本
- 设置系统时间
- 关于Apache的日志
- hdu4864 贪心