我是“早期失败”策略的粉丝,并希望检查方法params是否具有正确的值。在Java中,我使用Guava:
之类的东西checkArgument(count > 0, "must be positive: %s", count);
.NET有类似的内容吗?
答案 0 :(得分:7)
答案 1 :(得分:5)
答案 2 :(得分:4)
Code Contracts仍然是标准Visual Studio安装的添加/不添加的一部分,但它们允许您表达前后条件和对象不变量。
有不同的选项可用于将合同强制执行为编译时或运行时检查(或两者)。
答案 3 :(得分:1)
看看CuttingEdge.Conditions。它允许您以流畅的方式编写您的前提条件,如下所示:
ICollection GetData(int? id, string xml, IEnumerable<int> col)
{
Condition.Requires(id, "id")
.IsNotNull()
.IsInRange(1, 999)
.IsNotEqualTo(128);
Condition.Requires(xml, "xml")
.StartsWith("<data>")
.EndsWith("</data>")
.Evaluate(xml.Contains("abc") || xml.Contains("cba"));
Condition.Requires(col, "col")
.IsNotNull()
.IsNotEmpty()
.Evaluate(c => c.Contains(id.Value) || c.Contains(0));
}
对于CuttingEdge.Conditions,您需要使用带有.NET 2.0或更高版本的C#3.0或VB.NET 9.0。