发展历程 什么是可变类型? -技术百科的定义

什么是可变类型? -技术百科的定义

目录:

Anonim

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

在C#中,可变类型是对象的一种类型,其数据成员(例如属性,数据和字段)在创建后可以进行修改。


可变类型用于并行应用程序中,其中可变值类型的对象由公共语言运行时(CLR)在堆栈中维护。 这提供了一些优化,使其比堆分配的对象快。 为了防止由于多个线程访问共享数据而在并行应用程序中发生同步错误,将可变类型与某种锁定机制一起使用。


由于其固有的性质,可变类型数据可以在运行时进行修改,因此当对象包含大量可更改数据时,经常使用可变类型。 尽管可变类型不像不可变类型那样具有线程安全性和安全性,但可变值类型经常与值类型的变量一起使用,该变量在堆栈中分配,从而提高了性能。

技术百科解释了可变类型

所有内置值类型(例如int,double等)都是可变类型,可以通过在变量之前添加修饰符“ readonly”来使其不可变。 如果使用只读修饰符指定了可变的引用类型,则C#编译器将生成警告。 通过将只读修饰符添加到引用类型的字段,该字段不能用引用类型的另一个实例替换,但是将允许通过引用类型修改字段的实例数据。


例如,StringBuilder是.NET Framework库中的可变引用类型,通过该类型,可以通过附加,删除,替换或插入字符来修改从该类型创建的实例的字符串值。


可变类型不应该从不可变类型派生,因为派生类中的虚方法可能会覆盖它,从而覆盖不可变成员。


可变类型的主要局限性在于,当通过分配局部变量或将方法作为参数传递可变类型的对象(如struct)时,对象的值将被传递,而不是对象本身。 这样,对象的副本将被更改,而不是原始的。 此行为可能导致意外的错误。

该定义是在C#上下文中编写的
什么是可变类型? -技术百科的定义