Par défaut en C#, si la valeur d'une expression constante dépasse la valeur maximale du type cible, une erreur de compilation se produira.
Si le type de données cible ne peut pas accueillir les données d'une expression non constante, les données seront tronquées lors de l'affectation.
class Program { static void Main(string[] args) { int n = int.MaxValue;//n=2147483647 n = n + 1; System.Console.WriteLine(n); } }
À ce stade, cela peut s'expliquer par les données de stockage en mémoire. Auparavant, int.MaxValue était de 32 bits 1 dans la mémoire. devient 0 32 bits. Lorsque 0 est considéré comme un signe négatif, nous obtenons -2147483648.
Placer le code ci-dessus dans le bloc coché provoquera un type System.OverflowException.
class Program { static void Main(string[] args) { checked { int m = int.MaxValue; m = m + 1; System.Console.WriteLine(m); } } }
Une variable placée dans un bloc coché en C# provoquera une exception si une affectation de débordement se produit pendant l'exécution.
unchecked est utilisé pour annuler la vérification de débordement des opérations arithmétiques et des conversions entières.
Ce qui précède est le contenu des difficultés C# une par une (7) : cochées et décochées. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !