伊莎贝拉(Izabela Wlodarska)
我试图了解不可变的类型。我知道字符串以及匿名类型都是不可变的,但是这种情况又如何呢?其中哪些在C#中是不可变的,为什么?你能解释一下吗?
数据集,标签,日期时间,对象,数组列表
克里斯托夫·芬克(Christoph Fink)
DateTime
是struct
(=值类型)并且不可变,但是其余(DataSet, Label, object, ArrayList
)是可变的:
类型的对象DateTime
无法编辑-该对象上的所有方法都返回一个新DateTime
对象。其他所有可以更改。
object
有点特殊,因为它可以是“任何东西”,因此AFAIK不能将其称为不可变的。
通常,“不可变”是指对象在创建后便无法更改。正如Tim正确指出的那样,struct
默认情况下它是可变的,但通常是以不变的方式实现的。因此,所说的值类型可以是可变的,但在大多数情况下不是。请参阅此小示例,当您使用可变值类型时会发生什么。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句