我最近一直在关注DbC和Spec#似乎支持不可为空的对象。不幸的是,Spec#似乎已被抛弃。
我没有看到在语言中内置这样的功能的问题。有人能在这方面给我启发吗?
答案 0 :(得分:7)
您是否看到新的Contracts framework将成为.NET 4.0的一部分?
使其成为一个库而不是语言功能的好处是,它立即可用于所有语言,语言团队无需工作。显然也有缺点......
链接:
说了这么多,我希望能写下来:
public Stream! Foo(string! x)
同样,表明Foo不能接收空引用,也不会返回一个。我认为,为 这种类型的合同提供一些额外的语法会很方便。