首頁  >  文章  >  後端開發  >  C# 已檢查

C# 已檢查

王林
王林原創
2024-09-03 15:16:511054瀏覽

要明確檢查算術中整數運算和轉換的溢出,必須為算術中整數運算和轉換啟用溢出檢查,這可以透過使用 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++;
}
}
}
}
}

輸出:

C# 已檢查

在上面的程式中,定義了一個名為 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);
}
}
}
}

輸出:

C# 已檢查

在上面的程式中,定義了一個名為 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;
}
}

輸出:

C# 已檢查

在上面的程式中,定義了一個名為Check的類別。然後將整數的最大值賦給變數 maxInt。然後呼叫main方法。然後我們呼叫 check 方法函數,在該函數中我們使用了 try-catch 區塊,該區塊由 checked 關鍵字組成,用於將整數的最大值加一,catch 區塊由我們想要顯示的異常語句組成。如果我們在上面的程式中不使用checked關鍵字,則不會拋出異常。因為我們在程式中使用了checked關鍵字,所以會拋出輸出快照中所示的例外。程式中的checked關鍵字可以透過選擇編譯器中的選項「/checked」來啟動。當變數二十的值與記憶體位置無法容納的整數的最大值相加時,會引發溢位異常。使用特殊的中間指令在運行時引發溢位異常。

結論

在本教程中,我們透過定義來了解 C# 中 checked 關鍵字的概念、C# 中檢查關鍵字的語法、透過範例了解 C# 中檢查關鍵字的工作原理及其輸出。

以上是C# 已檢查的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:C# 緩衝區下一篇:C# 緩衝區