C#難點逐個擊破(7):checked與unchecked
C#默認(rèn)情況下,若常數(shù)表達(dá)式的值超過了目標(biāo)類型的最大值,將會導(dǎo)致編譯錯誤。

若目標(biāo)數(shù)據(jù)類型不能容納非常數(shù)表達(dá)式的數(shù)據(jù),那么數(shù)據(jù)在賦值時會被截斷。
class Program
{
static void Main(string[] args)
{
int n = int.MaxValue;//n=2147483647
n = n + 1;
System.Console.WriteLine(n);
}
}

此時可用內(nèi)存存儲數(shù)據(jù)來解釋,之前int.MaxValue在內(nèi)存為為32位1,自加1后變?yōu)?2位0,此時0被認(rèn)為是負(fù)號,因此會得來-2147483648。
將上述代碼放在checked塊中,將會引發(fā)System.OverflowException類型。
class Program
{
static void Main(string[] args)
{
checked
{
int m = int.MaxValue;
m = m + 1;
System.Console.WriteLine(m);
}
}
}

C#中放在checked塊內(nèi)的變量,若運行時發(fā)生一次溢出的賦值就會引發(fā)一個異常。
unchecked用于取消整型算術(shù)運算和轉(zhuǎn)換的溢出檢查。
相關(guān)文章
關(guān)于C#生成MongoDB中ObjectId的實現(xiàn)方法
本篇文章小編為大家介紹,關(guān)于C#生成MongoDB中ObjectId的實現(xiàn)方法。需要的朋友參考下2013-04-04
C#連接ClickHouse數(shù)據(jù)庫的步驟指南
在 C# 中連接 ClickHouse 數(shù)據(jù)庫,您可以使用 ClickHouse.Client 庫,這個庫提供了對 ClickHouse 數(shù)據(jù)庫的高效訪問,以下是詳細(xì)的步驟指南,幫助您在 C# 項目中連接和操作 ClickHouse 數(shù)據(jù)庫,需要的朋友可以參考下2024-12-12
unity實現(xiàn)貼圖矩陣運算(旋轉(zhuǎn)平移縮放)
這篇文章主要為大家詳細(xì)介紹了unity實現(xiàn)貼圖矩陣運算,旋轉(zhuǎn)平移縮放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07

