C# 不可变类型 -0021

不可变类型

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/codesee/p/13111882.html