纯类型是不可变类型吗?

时间:2014-08-27 17:43:03

标签: c# .net

我正在查看MSDNPureAttribute的文档,我很惊讶它可以在课程级别应用。我知道什么是纯函数,但我从未见过它适用于某种类型。在MSDN文档中,它声明了以下内容:

  

表示类型或方法是纯粹的,也就是说,它不会进行任何可见的状态更改。

(用粗体突出显示)

所以我的问题是,如果纯类型没有进行任何可见的状态更改,那么它是否与不可变类型相同?如果在类型级别应用这两个术语,是否相同?如果没有,有人可以告诉我一个纯粹类型的例子,它不是不可变的或反之亦然。

1 个答案:

答案 0 :(得分:2)

不,那些不一样:

  • 不可变类型可能有变异另一个对象的方法,这不是纯粹的。

  • 另一方面,类型可以暴露可变字段,但只有纯方法不会修改这些字段。