c中兩種int轉換方法的區別與好處壞處

時間 2021-08-30 09:42:35

1樓:匿名使用者

這兩個方法的最大不同是它們對null值的處理方法:

convert.toint32(null)會返回0而不會產生任何異常,但int.parse(null)則會產生異常。

沒搞清楚convert.toint32和int.parse()的細細微區別時千萬別亂用,否則可能會產生無法預料的結果,舉例來說:

假如從url中取一個引數page的值,我們知道這個值是一個int,所以即可以用convert.toint32(request.querystring["page"]),也可以用,int.

parse(request.querystring["page"]),但是如果page這個引數在url中不存在,那麼前者將返回0,0可能是一個有效的值,所以你不知道url中原來根本就沒有這個引數而繼續進行下一下的處理,這就可能產生意想不到的效果,而用後一種辦法的話沒有page這個引數會丟擲異常,我們可以捕獲異常然後再做相應的處理,比如提示使用者缺少引數,而不是把引數值當做0來處理。

(2)還有一點區別就是

a. convert.toint32(double value)

如果 value 為兩個整數中間的數字,則返回二者中的偶數;即 3.5轉換為4,4.5 轉換為 4,而 5.5 轉換為 6。 不過4.6可以轉換為5,4.4轉換為4

b. int.parse("4.5")

直接報錯:"輸入字串的格式不正確".

c. int(4.6) = 4

int轉化其他數值型別為int時沒有四捨五入,強制轉換

int.parse是轉換string為int

convert.toint32是轉換繼承自object的物件為int的.

你得到一個object物件,你想把它轉換為int,用int.parse就不可以,要用convert.toint32.

個人總結:

(1)convert.toint32的引數比較多,int.parse只能轉換string型別的.

(2)parse就是把string轉換成int,char,double....等,也就是*.parse(string) 括號中的一定要是string.

(3)convert可以提供多種型別的轉換,也就是convert.*()括號中可以為很多種型別(包括string).

2樓:匿名使用者

int.parse只是轉換string為int

convert.toint32是轉換繼承自object的物件為int的.

比如你得到一個object物件,你想把它轉換為int,用int.parse就不可以,要用convert.toint32

3樓:豬頭山伯爵

int.parse效率高

c#中int?與int的區別

4樓:書愜彭芬

int?為可空型別,把值型別裝箱為引用型別。如果是int,return

null就是return

0,如果是int?,return

null就是null.要訪問值,可以直接賦值給一個int,cli會自動拆箱,或者呼叫它的value屬性。

5樓:匿名使用者

多個?叫做可空型別,也就是這個型別允許被賦值為null或者他正確的型別值。但是這種型別要注意null值情況下的運算,比如:

int? a = null;那麼 a = a + 3;這個結果還是null,null與任何值的運算結果還是null。

6樓:匿名使用者

比較以下**片段:int? a = null;

int a = null; //編譯錯誤。可見,int?允許把null賦值給數值型,這個是為了相容sql或者其它資料庫中null這個空值所設定的。

在c#中int,int.parse()和convert.toint32()的區別

7樓:匿名使用者

都是強制bai轉換區別在於:(1)這兩

du個方法的最大zhi不同是它們對null值的處理方法dao:

convert.toint32(null)會返回

回0而不會產生任何異常,但答int.parse(null)則會產生異常

(2)還有一點區別就是

a. convert.toint32(double value)

如果 value 為兩個整數中間的數字,則返回二者中的偶數;即 3.5轉換為4,4.5 轉換為 4,而 5.

5 轉換為 6。 不過4.6可以轉換為5,4.

4轉換為4

b. int.parse("4.5")

直接報錯:"輸入字串的格式不正確". c. int(4.6) = 4

int轉化其他數值型別為int時沒有四捨五入,強制轉換 int.parse是轉換string為int

convert.toint32是轉換繼承自object的物件為int的.

你得到一個object物件,你想把它轉換為int,用int.parse就不可以,要用convert.toint32.。

高達seed中,兩種拂曉高達有什麼區別

空戰揹包大鷲 在大氣圈內使用的飛行部件。搭載了4基噴氣引擎以及2基火箭推進器,擁有讓拂曉加速到亞音速的高推進力。同時,和正義系列的揹包一樣,能從本體分離,變形為支援戰鬥機,進行遠端遙控,或者依靠人工智慧來進行自律行動,但在劇中並沒有使用的場面。因為動畫第5首op中,有裝備了本揹包的拂曉在宇宙中 的畫...

「教」字,如何區別它的兩種拼音在漢語中的應用

獨酌酌酌 首先復,漢語拼音方案 是惟制一合法的拼音方案,具有群眾性 科學性和法定性,任何個人或組織都不能隨意更改 而小學拼音教材就不具備這一特點,為了達到多快好省 事半功倍的目的,它可以在教學實踐中不斷修訂,不斷完善。其次,漢語拼音方案 代表了普通話語音系統,也是我國少數民族創制文字的基礎 而小學拼...

選修《外國小說》中兩種手法搖擺與延遲的區別,最好能舉例

搖擺是適度偏離,即在事件的敘述中交代與事件相關的另一件事,例如 清兵衛與葫蘆 一文中,教員看到清兵衛在上修身課玩葫蘆時,按照正常的情節發展,應該責罵並沒收葫蘆,然而作者卻有意偏離軌道,介紹其武士道和對名伶的愛好,這種搖擺很是巧妙,因為這個內容與主題有聯絡,而且有揶揄的口吻,與主要事件即相輔,也相成。...