《刻意练习之C#》-0021- C# 不可变类型

时间:2020-06-13 10:41:43   收藏:0   阅读:67

不可变类型

如果一个类型包含可以修改的成员,那么它是一个可变类型。

通过使用readonly修饰符,编译器负责解释类型的状态是否发生变化,这种类型仅允许在构造函数里进行初始化。

如果一个对象没有任何可以修改的成员——它仅包含readonly成员的话——那么它就是一个不可变类型。它的内容仅可以在初始化的时候发生更改。

这种类型对于多线程编程会很有用,因为多线程可以同时访问同一个类,而它的值从来不会改变。因为它的值不变,你就不需要编写额外的同步代码。

 

一个典型的不可变类型是String类。这个类没有定义任何可修改的成员。

它的内部方法,如ToUpper之类的,总是返回一个新的字符串,而通过构造函数创建的原始字符串不会发生任何变化。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!