Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Contract.Invariant (Boolean)

 

Data di pubblicazione: ottobre 2016

Specifica un contratto invariante per il metodo o proprietà contenitore.

Spazio dei nomi:   System.Diagnostics.Contracts
Assembly:  mscorlib (in mscorlib.dll)

[ConditionalAttribute("CONTRACTS_FULL")]
public static void Invariant(
	bool condition
)

Parametri

condition
Type: System.Boolean

Espressione condizionale da sottoporre a test.

Invariant i contratti sono contenuti all'interno di un metodo identificato dal ContractInvariantMethodAttribute attributo; in genere, il metodo è denominato ObjectInvariant.

  • Questo contratto può essere specificato solo in un metodo invariante dedicato che è dichiarato in una classe. Se il metodo non è sealed, deve fare riferimento solo ai membri protetti, non ai membri privati, in modo che le sottoclassi assicurarsi di mantenere gli invarianti.

  • Il presente contratto non viene esposta al client. Pertanto, può fare riferimento solo i membri meno visibili rispetto al metodo che lo contiene.

  • È necessario utilizzare il rewriter binario per l'applicazione in fase di esecuzione di questa invariante.

  • Le invarianti vengono definite in modo condizionale in base alla presenza del CONTRACTS FULL simbolo. Durante il controllo in fase di esecuzione, le invarianti vengono controllate alla fine di ogni metodo pubblico. Se un'invariante menziona un metodo pubblico nella stessa classe, il controllo dell'invariante che avverrebbe normalmente alla fine di tale metodo è disabilitato e viene controllato solo alla fine della chiamata al metodo più esterna a tale classe. Ciò avviene anche se la classe viene immessa di nuovo a causa di una chiamata a un metodo in un'altra classe.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 4.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 4.0
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: