Я пытаюсь понять преимущества Code Contracts.Я написал следующий код (из введения в PEX + Code Contract), чтобы выкопать его.
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);
}
Я вызвал этот метод с нулевыми аргументами, и он был скомпилирован.Так что мне не понятно, почему это лучше, чем бросать исключения.Ребята, не могли бы вы объяснить, есть ли у Code Contracts какие-либо дополнительные функции?:) Заранее спасибо.