Quand devons-nous utiliser l’opérateur vérifié en C #?

Quand devons-nous utiliser l’opérateur checked en C #?
Est-ce seulement approprié pour la gestion des exceptions?

Vous utiliseriez checked pour vous protéger contre un débordement (silencieux) dans une expression.
Et utilisez cette unchecked lorsque vous savez qu’un débordement inoffensif peut se produire.

Vous utilisez les deux à des endroits où vous ne voulez pas vous fier au paramètre de compilateur par défaut (à l’échelle du projet).

Les deux formes sont assez rares, mais lorsque vous effectuez une arithmétique entière critique, il convient de réfléchir à un débordement possible.

Notez également qu’ils se présentent sous deux formes:

  x = unchecked(x + 1); // ( expression ) unchecked { x = x + 1;} // { statement(s) } 

checked vous aidera à relever System.OverFlowException qui passera inaperçu sinon

 int result = checked (1000000 * 10000000); // Error: operation > overflows at comstack time int result = unchecked (1000000 * 10000000); // No problems, comstacks fine 

Des opérateurs contrôlés et non contrôlés

Les opérateurs cochés et non cochés permettent de contrôler le contexte de contrôle de débordement pour les opérations arithmétiques de type intégré et les conversions.

Dans un contexte coché, si une expression produit une valeur en dehors de la plage du type de destination, le résultat dépend du fait que l’expression soit constante ou non. Les expressions constantes entraînent des erreurs lors de la compilation, tandis que les expressions non constantes sont évaluées au moment de l’exécution et déclenchent des exceptions.

Dans un contexte non contrôlé, si une expression produit une valeur en dehors de la plage du type de destination, le résultat est tronqué.

coché , décoché

checked ou unchecked checked est également utile lorsque vous faites du calcul de nombres entiers. en particulier les opérations d’incrémentation et vous savez que vous allez incrémenter au-delà de UInt32.MaxValue et que vous voulez qu’il UInt32.MaxValue à 0 .