首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么时候应该使用C# 4.0附带的代码契约?

什么时候应该使用C# 4.0附带的代码契约?
EN

Stack Overflow用户
提问于 2010-12-09 12:22:01
回答 2查看 2.1K关注 0票数 19

我正在讨论一个关于new features of c# 4.0的问题,jon skeet的答案是C# 4.0的代码合同特性。但是我真的不知道什么时候使用它们..任何建议..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-09 12:31:25

只要有可能。例如,在方法开头使用guard子句的任何地方,如

代码语言:javascript
复制
public void Write(TextWriter tw, object o) {
    if(tw == null) {
        throw new ArgumentNullException("tw");
    }
    if(o == null) {
        throw new ArgumentNullException("o");
    }
    tw.WriteLine(o.ToString());
}

您应该改为使用

代码语言:javascript
复制
public void Write(TextWriter tw, object o) {
    Contract.Requires(tw != null);
    Contract.Requires(o != null);
    tw.WriteLine(o.ToString());
}

Contract的美妙之处在于,它们是公开的,可以成为文档的一部分,而不需要您做额外的工作,因为守卫条款不是公开的,只能通过一些繁重的工作才能放入文档中。因此,使用Contract可以在代码中更清晰地表达需求和承诺。

票数 25
EN

Stack Overflow用户

发布于 2010-12-15 05:43:39

合同真正的好处是你不需要硬连接那些丑陋的参数名称字符串……

代码语言:javascript
复制
if(tw == null) throw new ArgumentNullException("tw");
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4394812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档