在C#中使用函数样式编写时,是否有任何工具可以静态验证类是不可变的,函数是纯粹的?我认为在一般情况下这是不可能的,但是90%的时间使用的工具仍然有用。
我可以想象一些反映,检查所有成员变量是readonly
,并且所有成员类型(和所有可见的子类型)也是不可变的(递归)。我不知道检查功能会如何开始运作。
答案 0 :(得分:1)
[Immutable]和[Pure]注释似乎是针对这一点的。看看.NET 4.0的Design by Contract工具。 IIRC,静态验证仅适用于VS Ultimate。