自从.NET 4.0合同推出以来,我想知道微软是否将它传播到所有类,比如BCL?
如果没有,那么为什么?如果默认情况下标准库支持这种功能,那么这种功能才有意义,对吗?
答案 0 :(得分:2)
并非所有的BCL。
考虑到Code Contracts尚未完全内置于IDE和语言中;这是一个单独的下载。毫无疑问,当它实现了更大的开发人员渗透率,增加了与IDE的集成以及BCL的完整注释时,我们将看到它开箱即用。
答案 1 :(得分:2)
尚未向所有BCL添加代码合同。许多最常见的类都添加了注释,但整个BCL没有。
这里的主要原因是时间。 BCL是巨大的,并且为所有BCL添加正确的合同是大规模承诺。目前,结果只会使.Net用户群的一小部分受益。如果合同越来越受欢迎,那么我肯定他们在BCL中的使用量也会增长(是的,我意识到不做一个让另一个人不太可能)
虽然用户能够声明自定义合同程序集,但可以减轻此问题。这允许他们对错过的类型进行后期注释,并从Contracts的角度来看它们的代码库是干净的。