不可变类型

作者: Lewis Jackson
创建日期: 8 可能 2021
更新日期: 25 六月 2024
Anonim
Python从入门到精通  330 229 可变类型和不可变类型 01 基本概念
视频: Python从入门到精通 330 229 可变类型和不可变类型 01 基本概念

内容

定义-不可变类型是什么意思?

就C#而言,不可变类型是一种对象,其数据在创建后就无法更改。不可变类型将对象的属性或状态设置为只读,因为在初始化期间将其分配后无法对其进行修改。

不可变类型旨在提高内存管理效率和提高速度,从而使其适合于具有同步要求的对象。不可变性通过更改程序状态可见性并将未更改状态的操作与未更改状态的操作隔离开来,从而提高了代码的可读性。不可变类型比可变类型提供更高的安全性。

不可变类型用于数据分配一次后仍可保留的情况,但不要求将来更改数据。由于不可变对象不会更改其状态,因此它们在多线程和多进程方案中更有用,因为多个线程可能会读取或写入一个对象,这可能会导致竞争状况和同步问题。


Microsoft Azure和Microsoft Cloud简介在本指南中,您将了解什么是云计算,以及Microsoft Azure如何帮助您从云迁移和运行业务。

技术百科解释了不可变类型

可以使用关键字“ const”和“ readonly”创建不可变类型的对象。只读允许在构造函数中修改字段,而const不允许。数字,字符串和null只能用作const字段,它们是真正不变的。只读并不是真正不变的,因为它只允许写入一次。因此,它不是像const字段那样的编译时常量。真正不可变的对象根本不会改变其内部状态,因此本质上是线程安全的。

System.String类是.NET Framework类库中提供的不可变引用类型。此类在内部为任何字符串操作操作创建一个新的字符串对象。尽管语法使它看起来好像可以更改内容,但此类型对象的内容不会更改。另外,将字符串用作哈希表键,用于计算哈希值,以避免破坏哈希数据结构的风险。

不变类型的主要缺点是,与其他对象类型相比,它们需要更多的资源。

这个定义是用C#编写的