我正在讨论一个关于new features of c# 4.0的问题,jon skeet的答案是C# 4.0的代码合同特性。但是我真的不知道什么时候使用它们..任何建议..。
发布于 2010-12-09 12:31:25
只要有可能。例如,在方法开头使用guard子句的任何地方,如
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());
}
您应该改为使用
public void Write(TextWriter tw, object o) {
Contract.Requires(tw != null);
Contract.Requires(o != null);
tw.WriteLine(o.ToString());
}
Contract
的美妙之处在于,它们是公开的,可以成为文档的一部分,而不需要您做额外的工作,因为守卫条款不是公开的,只能通过一些繁重的工作才能放入文档中。因此,使用Contract
可以在代码中更清晰地表达需求和承诺。
发布于 2010-12-15 05:43:39
合同真正的好处是你不需要硬连接那些丑陋的参数名称字符串……
if(tw == null) throw new ArgumentNullException("tw");
https://stackoverflow.com/questions/4394812
复制相似问题