检查.NET中的前提条件
我是“failearly”策略的粉丝,我想检查方法params是否有正确的值。在Java中,我会使用如下内容: .NET是否也有类似的功能?代码契约:仍然是标准Visual Studio安装的附加组件/不是其一部分,但它们确实允许您表达前置和后置条件以及对象不变量 可以使用不同的选项来强制执行编译时或运行时检查(或两者兼有)。请查看。它允许您以流畅的方式编写前提条件,如下所示:检查.NET中的前提条件,.net,validation,code-contracts,preconditions,.net,Validation,Code Contracts,Preconditions,我是“failearly”策略的粉丝,我想检查方法params是否有正确的值。在Java中,我会使用如下内容: .NET是否也有类似的功能?代码契约:仍然是标准Visual Studio安装的附加组件/不是其一部分,但它们确实允许您表达前置和后置条件以及对象不变量 可以使用不同的选项来强制执行编译时或运行时检查(或两者兼有)。请查看。它允许您以流畅的方式编写前提条件,如下所示: ICollection GetData(int? id, string xml, IEnumerable<int
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));
}
ICollection GetData(int?id、字符串xml、IEnumerable列)
{
条件.要求(id,“id”)
.IsNotNull()
.IsInRange(1999年)
.IsNotEqualTo(128);
条件.Requires(xml,“xml”)
.StartsWith(“”)
.EndsWith(“”)
.Evaluate(xml.Contains(“abc”)| xml.Contains(“cba”));
条件。要求(列,“列”)
.IsNotNull()
.IsNotEmpty()
.Evaluate(c=>c.Contains(id.Value)| | c.Contains(0));
}
您需要C#3.0或VB.NET 9.0以及.NET 2.0或更高版本来满足尖端条件。您要做的是
您应该使用定义合同,即C#中类型\方法的前置条件、后置条件和不变量
IMO代码合同的最佳和最全面的覆盖范围是 +1是“早期失败”策略的粉丝。您需要针对的.NET Framework的最早版本是什么?目标平台是.NET>=3.5。@daemon-我一直沉迷于使用CuttingEdge。条件--NuGet the bad boy and u't Return:)NuGet the bad boy and u't Return:)需要一秒钟的时间,然后开始使用它。走!快点!勾选这个问题,然后去拿它-我=芬博。
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));
}