C#中的不可变类型

伊莎贝拉(Izabela Wlodarska)

我试图了解不可变的类型。我知道字符串以及匿名类型都是不可变的,但是这种情况又如何呢?其中哪些在C#中是不可变的,为什么?你能解释一下吗?
数据集,标签,日期时间,对象,数组列表

克里斯托夫·芬克(Christoph Fink)

DateTimestruct(=值类型)并且不可变,但是其余(DataSet, Label, object, ArrayList)是可变的:

类型的对象DateTime无法编辑-该对象上的所有方法都返回一个新DateTime对象。其他所有可以更改。
object有点特殊,因为它可以是“任何东西”,因此AFAIK不能将其称为不可变的。

通常,“不可变”是指对象在创建后便无法更改。正如Tim正确指出的那样,struct默认情况下它是可变的,但通常是以不变的方式实现的。因此,所说的值类型可以是可变的,但在大多数情况下不是。请参阅小示例,当您使用可变值类型时会发生什么。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章