我很想了解代码合同的优点。我写了下面的代码(来自PEX +代码合同介绍)来挖掘它。代码合同和异常抛出差异
public static string TrimAfter(string value, string suffix)
{
// <pex>
Contract.Requires(suffix != (string)null);
Contract.Requires
(value.IndexOf(suffix) >= 0 && value.Length >= value.IndexOf(suffix));
Contract.Requires(value != (string)null);
// </pex>
int index = value.IndexOf(suffix);
if (index < 0)
return value;
return value.Substring(0, index);
}
我用null的参数调用了这个方法,并且它被编译了。 因此,我不清楚为什么它会抛出Exceptions更好。 如果代码合同真的有任何其他功能,你们可以解释一下吗? :) 在此先感谢。
你为什么要将空值转换为字符串?这是没有必要的。 – Massif 2011-02-17 12:59:12