C#入門之checked和unchecked的區(qū)別實(shí)例解析
本文以實(shí)例形式對(duì)比測試了C#中checked和unchecked的區(qū)別,對(duì)于C#初學(xué)者來說有很好的借鑒參考價(jià)值。具體分析如下:
int類型的最大值是2147483647,2個(gè)最大值相加就會(huì)超出int的最大值,即出現(xiàn)溢出。
class Program { static void Main(string[] args) { int y = 2147483647; int x = 2147483647; int z = x + y; Console.WriteLine(z.ToString()); Console.ReadKey(); } }
把斷點(diǎn)打在 int z = x + y;代碼行,單步調(diào)試,可以看到z的值為-2。因?yàn)閕nt類型的最大值是2147483647,x + y超出了最大值,出現(xiàn)了溢出。
程序運(yùn)行效果如下圖所示:
一、使用checked:
如果我們想讓編譯器幫我們判斷是否溢出,就使用checked關(guān)鍵字。
class Program { static void Main(string[] args) { int y = 2147483647; int x = 2147483647; int z = checked(x + y); } }
運(yùn)行后拋出溢出異常,運(yùn)行結(jié)果如下圖所示:
如果我們想手動(dòng)捕獲并打印異常,應(yīng)該這樣寫:
class Program { static void Main(string[] args) { int y = 2147483647; int x = 2147483647; try { int z = checked(x + y); } catch (OverflowException ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); } }
運(yùn)行結(jié)果如下圖所示:
二、使用unchecked:
使用unchecked不會(huì)拋出溢出異常。
class Program { static void Main(string[] args) { int y = 2147483647; int x = 2147483647; int z = unchecked(x + y); Console.WriteLine(z.ToString()); Console.ReadKey(); } }
結(jié)果為:-2
相關(guān)文章
C# WinForm狀態(tài)欄實(shí)時(shí)顯示當(dāng)前時(shí)間(窗體狀態(tài)欄StatusStrip示例)
這篇文章主要介紹了C# WinForm狀態(tài)欄實(shí)時(shí)顯示當(dāng)前時(shí)間(窗體狀態(tài)欄StatusStrip示例),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01.NET使用C#設(shè)置Excel單元格數(shù)值格式
這篇文章主要為大家詳細(xì)介紹了如何使用C#在.NET程序中實(shí)現(xiàn)對(duì)Excel單元格數(shù)字格式的設(shè)置,幫助實(shí)現(xiàn)更完善的Excel文件處理,感興趣的小伙伴可以了解下2024-12-12WinForm實(shí)現(xiàn)自定義右下角提示效果的方法
這篇文章主要介紹了WinForm實(shí)現(xiàn)自定義右下角提示效果的方法,涉及WinForm自定義提示效果的實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08c# 利用易福門振動(dòng)模塊VSE002采集振動(dòng)數(shù)據(jù)的方法
這篇文章主要介紹了c# 利用易福門振動(dòng)模塊VSE002采集振動(dòng)數(shù)據(jù)的方法,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04C#中Clone一個(gè)對(duì)象的值到另一個(gè)對(duì)象案例
這篇文章主要介紹了C#中Clone一個(gè)對(duì)象的值到另一個(gè)對(duì)象案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12C#中GraphicsPath的Warp方法用法實(shí)例
這篇文章主要介紹了C#中GraphicsPath的Warp方法用法,實(shí)例分析了Warp方法的相關(guān)使用技巧,需要的朋友可以參考下2015-06-06