在C#語法中,溢出凡是有兩種處置體例,第一種是在界說的時辰直接賦值跨越規模的值,這個時辰編譯器就能查抄出來。第二種就是利用checked,在界說的時辰沒有溢出,后續計較的時辰溢出了,那么,程序就會報錯。
打開visual studio,建立一個節制臺應用程序,用于演示C#語法中的checked查抄溢出,和unchecked不查抄溢出的利用。在Main方式中,界說一個byte類型的變量,直接賦值256,因為byte的規模是0到255,所以,編譯器直接報錯
 點竄byte類型變量的初始值為255,然后,在后續代碼中讓其自增1,這個時辰理論上值到了256,可是,現實運行成果倒是0,跟預期的成果紛歧樣,導致后續呈現異常時,排盤問題較難
 在vs中,調試運行代碼,可以在節制臺窗口中看到運行的成果為0,不是256。可是,整個運行過程中也沒有報錯
 若是想要避免呈現這樣既不報錯,也不是預期成果的環境,就可以利用checked關頭字包裹這段代碼,這樣,在運行時,發現溢出,就會報錯
 繼續在vs中,調試代碼,就會發現呈現了:System.OverflowException:“算術運算導致溢出”的錯誤。這樣就能避免不報錯,成果也不合適預期的環境
 假設,某些環境下,就是不但愿對溢出進行查抄,這個時辰就可以利用unchecked關頭字,包裹不進行溢出查抄的代碼段
 再次在vs中調試,會發現,這一次沒有溢出的錯誤了。可是,其實數據仍是溢出了。是以,現實項目中,碰到溢出的時辰,可以改換為規模更大的數據類型
 0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!