Tengo el siguiente código en mi aplicación .Net 4:¿Por qué no se prueba esta llamada Contract.Ensure basada en cadenas?
static void Main(string[] args) {
Func();
}
static string S = "1";
static void Func() {
Contract.Ensures(S != Contract.OldValue(S));
S = S + "1";
}
Esto me givens una advertencia asegura no probada en tiempo de compilación:
warning : CodeContracts: ensures unproven: S != Contract.OldValue(S)
¿Qué está pasando? Esto funciona bien si S es un número entero. También funciona si cambio Asegurar a S == Contract.OldValue(S + "1")
, pero eso no es lo que quiero hacer.