Considérez le code suivant:Code des marchés
public class RandomClass
{
private readonly string randomString;
public RandomClass(string randomParameter)
{
Contract.Requires(randomParameter != null);
Contract.Ensures(this.randomString != null);
this.randomString = randomParameter;
}
public string RandomMethod()
{
return // CodeContracts: requires unproven: replacement != null
Regex.Replace(string.Empty, string.Empty, this.randomString);
}
}
Cela garantit que randomString
ne sera pas nulle quand RandomMethod
est exécuté. Pourquoi l'analyse des contrats de code ignore-t-elle ce fait et émet un avertissement CodeContracts: requires unproven: replacement != null
?
Merci compagnon. L'ajout d'un 'ContractInvariantMethod' a résolu le problème :) – Diadistis