要明確檢查算術中整數運算和轉換的溢出,必須為算術中整數運算和轉換啟用溢出檢查,這可以透過使用 C# 中名為 checked 關鍵字的關鍵字和使用Checked 來實現。 C# 中表達式的關鍵字,在運行時檢查常數表達式是否溢出,如果存在溢出,編譯器將引發溢出異常,而儘管使用了非常量表達式,但在運行時不會檢查非常量表達式是否溢出。檢查關鍵字和溢出,在這種情況下不會引發異常。
checked 關鍵字 C# 文法如下:
checked(Expression)
代碼:
//a namespace called check is defined namespace check { //a class called space is defined public class space { //main method is called public static void Main() { // Using checked keyword to check if the value is over flowing checked { // Increasing the value upto the value of maximum int number = 0; for (int x = 0; x < int.MaxValue; x++) { number++; } // Increasing the value upto the value of maximum again (error). for (int x = 0; x < int.MaxValue; x++) { number++; } } } } }
輸出:
在上面的程式中,定義了一個名為 check 的命名空間。然後定義一個名為space的類別。然後呼叫main方法。然後我們使用checked關鍵字透過將值增加到最大值來檢查值是否有溢位。如果我們在上面的程式中不使用checked關鍵字,則不會拋出異常。因為我們在程式中使用了checked關鍵字,所以會拋出輸出快照中所示的例外。程式中的checked關鍵字可以透過選擇編譯器中的選項「/checked」來啟動。當變數號碼每次加一達到記憶體位置無法容納的整數最大值時,就會引發溢位異常。使用特殊的中間指令在運行時引發溢位異常。
以下是下面提到的範例
C# 程式示範如何使用檢查關鍵字引發異常。
代碼:
using System; //a namespace called check is defined namespace check { //a class called space is defined public class space { //main method is called public static void Main() { // Using checked keyword to check if the value is over flowing checked { int twenty = 20; int j = 2147483647 + twenty; Console.WriteLine(j); } } } }
輸出:
在上面的程式中,定義了一個名為 check 的命名空間。然後定義一個名為space的類別。然後呼叫main方法。然後我們使用checked關鍵字來檢查該值是否溢出,方法是將值20分配給變數20,然後將其加到整數的最大值,以便拋出異常。如果我們在上面的程式中不使用checked關鍵字,則不會拋出異常。因為我們在程式中使用了checked關鍵字,所以會拋出輸出快照中所示的例外。程式中的checked關鍵字可以透過選擇編譯器中的選項「/checked」來啟動。當變數二十的值與記憶體位置無法容納的整數的最大值相加時,會引發溢位異常。使用特殊的中間指令在運行時引發溢位異常。
C# 程式示範如何使用檢查關鍵字引發異常。
代碼:
using System; //a class called check is defined public class Check { //the maximum value of integer is assigned to a variable static int maxInt = 2147483647; //main method is called public static void Main() { Console.WriteLine(CheckMethod()); } static int CheckMethod() { int y = 0; try { y = checked (maxInt + 1); } catch (System.OverflowException e) { Console.WriteLine("An overflow exception is raised because of maximum integer value " + e.ToString()); } return y; } }
輸出:
在上面的程式中,定義了一個名為Check的類別。然後將整數的最大值賦給變數 maxInt。然後呼叫main方法。然後我們呼叫 check 方法函數,在該函數中我們使用了 try-catch 區塊,該區塊由 checked 關鍵字組成,用於將整數的最大值加一,catch 區塊由我們想要顯示的異常語句組成。如果我們在上面的程式中不使用checked關鍵字,則不會拋出異常。因為我們在程式中使用了checked關鍵字,所以會拋出輸出快照中所示的例外。程式中的checked關鍵字可以透過選擇編譯器中的選項「/checked」來啟動。當變數二十的值與記憶體位置無法容納的整數的最大值相加時,會引發溢位異常。使用特殊的中間指令在運行時引發溢位異常。
在本教程中,我們透過定義來了解 C# 中 checked 關鍵字的概念、C# 中檢查關鍵字的語法、透過範例了解 C# 中檢查關鍵字的工作原理及其輸出。
以上是C# 已檢查的詳細內容。更多資訊請關注PHP中文網其他相關文章!