Contract.Invariant Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt einen Vertrag für eine einschließende Methode oder Eigenschaft an.
Überlädt
Invariant(Boolean) |
Gibt einen invarianten Vertrag für die einschließende Methode oder Eigenschaft an. |
Invariant(Boolean, String) |
Gibt einen invarianten Vertrag für die einschließende Methode oder Eigenschaft an und zeigt eine Meldung an, wenn die Bedingung für den Vertrag nicht erfüllt wird. |
Invariant(Boolean)
- Quelle:
- Contracts.cs
- Quelle:
- Contracts.cs
- Quelle:
- Contracts.cs
Gibt einen invarianten Vertrag für die einschließende Methode oder Eigenschaft an.
public:
static void Invariant(bool condition);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Invariant : bool -> unit
Public Shared Sub Invariant (condition As Boolean)
Parameter
- condition
- Boolean
Der bedingte Ausdruck, der getestet werden soll.
- Attribute
Hinweise
Invariant contracts sind in einer Methode enthalten, die durch das -Attribut identifiziert wird. In der ContractInvariantMethodAttribute Regel heißt ObjectInvariant
die Methode .
Dieser Vertrag kann nur in einer dedizierten invariante Methode angegeben werden, die für eine Klasse deklariert wird. Wenn die Methode nicht versiegelt ist, sollte sie sich nur auf geschützte Member und nicht auf private Member beziehen, damit Unterklassen sicher sein können, dass sie die Invarianten beibehalten.
Dieser Vertrag ist für Clients nicht verfügbar gemacht. Daher kann er auf Elemente verweisen, die weniger sichtbar sind als die einschließende Methode.
Sie müssen den binären Rewriter für die Laufzeiterzwingung dieser Invariante verwenden.
Invarianten werden bedingt basierend auf dem Vorhandensein des
CONTRACTS FULL
Symbols definiert. Bei der Laufzeitüberprüfung werden die Invarianten am Ende jeder öffentlichen Methode überprüft. Wenn eine invariante Methode eine öffentliche Methode in derselben Klasse erwähnt, wird die invariante Überprüfung, die normalerweise am Ende dieser öffentlichen Methode durchgeführt wird, deaktiviert und nur am Ende des äußersten Methodenaufrufs dieser Klasse überprüft. Dies geschieht auch, wenn die Klasse wegen eines Aufrufs einer Methode in einer anderen Klasse erneut eingegeben wird.
Gilt für:
Invariant(Boolean, String)
- Quelle:
- Contracts.cs
- Quelle:
- Contracts.cs
- Quelle:
- Contracts.cs
Gibt einen invarianten Vertrag für die einschließende Methode oder Eigenschaft an und zeigt eine Meldung an, wenn die Bedingung für den Vertrag nicht erfüllt wird.
public:
static void Invariant(bool condition, System::String ^ userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition, string userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition, string? userMessage);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Invariant : bool * string -> unit
Public Shared Sub Invariant (condition As Boolean, userMessage As String)
Parameter
- condition
- Boolean
Der bedingte Ausdruck, der getestet werden soll.
- userMessage
- String
Die Meldung, die angezeigt werden soll, wenn die Bedingung false
lautet.
- Attribute
Hinweise
Invariant contracts sind in einer Methode enthalten, die durch das -Attribut identifiziert wird. In der ContractInvariantMethodAttribute Regel heißt ObjectInvariant
die Methode .
Dieser Vertrag kann nur in einer dedizierten invariante Methode angegeben werden, die für eine Klasse deklariert wird.
Dieser Vertrag ist für Clients nicht verfügbar gemacht. Daher kann er auf Elemente verweisen, die weniger sichtbar sind als die einschließende Methode.
Sie müssen den binären Rewriter für die Laufzeiterzwingung dieser Invariante verwenden.
Invarianten werden bedingt für das
CONTRACTS FULL
Symbol definiert. Bei der Laufzeitüberprüfung werden die Invarianten am Ende jeder öffentlichen Methode überprüft. Wenn eine invariante Methode eine öffentliche Methode in derselben Klasse erwähnt, wird die invariante Überprüfung, die normalerweise am Ende dieser öffentlichen Methode durchgeführt wird, deaktiviert und nur am Ende des äußersten Methodenaufrufs dieser Klasse überprüft. Dies geschieht auch, wenn die Klasse wegen eines Aufrufs einer Methode in einer anderen Klasse erneut eingegeben wird.