Sto utilizzando l'estensione Microsoft Code Contracts con C#. Quando scrivo una classe con un'implementazione ToString override che restituisce null, si identifica correttamente il problema:In che modo i Contratti di codice sanno che le sostituzioni di ToString non devono restituire nulla?
Ho assunto questo era perché Microsoft utilizza contratti di codice interno, e hanno aggiunto una chiamata Contract.Ensures
-Object.ToString
. Tuttavia, quando guardo il Object.ToString
source code non vedo alcun contratto (vedo altri contratti, ma non quello che sto cercando). In che modo i Contratti di codice determinano che ToString non deve restituire nulla?
Per fornire ulteriori informazioni: I Contratti di codice non sono negli assembly ufficiali, pertanto non li si vede su referencesource.microsoft.com. Il team dei Contratti di codice ha definito tutti gli stessi Contratti di codice e li ha forniti in gruppi di riferimento del contratto separati, che contengono solo contratti e non una vera fonte. – cremor
@cremor Grazie! Proprio per la cronaca, vedo molti contratti su ReferenceSource (ad es. In [Object.cs] (http://referencesource.microsoft.com/#mscorlib/system/object.cs.180) ma suppongo che i contratti potrebbero essere specificato in .NET core o in Contratti di codice, a seconda di chi li ha scritti. – Will