我很想了解代碼合同的優點。我寫了下面的代碼(來自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