C# 已檢查
要明確檢查算術中整數運算和轉換的溢出,必須為算術中整數運算和轉換啟用溢出檢查,這可以透過使用 C# 中名為 checked 關鍵字的關鍵字和使用Checked 來實現。 C# 中表達式的關鍵字,在運行時檢查常數表達式是否溢出,如果存在溢出,編譯器將引發溢出異常,而儘管使用了非常量表達式,但在運行時不會檢查非常量表達式是否溢出。檢查關鍵字和溢出,在這種情況下不會引發異常。
checked 關鍵字 C# 文法如下:
checked(Expression)
C# 中檢查關鍵字的工作
- 每當一個數字溢位時,該數字的數值就會失效。因此,不會拋出任何異常。
- 對於當數字溢位時拋出的異常,我們使用關鍵字checked。
- 每當檢查關鍵字用於值溢位的表達式時,都會引發異常。
- 由於值溢位會引發異常,因此可以透過捕捉異常來避免錯誤。因此,生成的程式品質將會很好。
- 考慮以下程序來示範檢查關鍵字在 C# 程式中的使用:
代碼:
//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# 範例
以下是下面提到的範例
範例#1
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」來啟動。當變數二十的值與記憶體位置無法容納的整數的最大值相加時,會引發溢位異常。使用特殊的中間指令在運行時引發溢位異常。
範例#2
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中文網其他相關文章!
熱AI工具
Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片
AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。
Undress AI Tool
免費脫衣圖片
Clothoff.io
AI脫衣器
AI Hentai Generator
免費產生 AI 無盡。
熱門文章
熱工具
記事本++7.3.1
好用且免費的程式碼編輯器
SublimeText3漢化版
中文版,非常好用
禪工作室 13.0.1
強大的PHP整合開發環境
Dreamweaver CS6
視覺化網頁開發工具
SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)
熱門話題
使用 C# 的活動目錄
Sep 03, 2024 pm 03:33 PM
使用 C# 的 Active Directory 指南。在這裡,我們討論 Active Directory 在 C# 中的介紹和工作原理以及語法和範例。
c#多線程和異步的區別
Apr 03, 2025 pm 02:57 PM
多線程和異步的區別在於,多線程同時執行多個線程,而異步在不阻塞當前線程的情況下執行操作。多線程用於計算密集型任務,而異步用於用戶交互操作。多線程的優勢是提高計算性能,異步的優勢是不阻塞 UI 線程。選擇多線程還是異步取決於任務性質:計算密集型任務使用多線程,與外部資源交互且需要保持 UI 響應的任務使用異步。


