轉:C#整數三種強制類型轉換int、Convert.ToInt32()、int.Parse()的區別

来源:http://www.cnblogs.com/AdaLoong/archive/2016/03/15/5281232.html
-Advertisement-
Play Games

1、int適合簡單數據類型之間的轉換,C#的預設整型是int32(不支持bool型); 2、int.Parse(string sParameter)是個構造函數,參數類型只支持string類型; 3、Convert.ToInt32()適合將Object類型轉換為int型; 4、Convert.ToI


1、int適合簡單數據類型之間的轉換,C#的預設整型是int32(不支持bool型);

2、int.Parse(string sParameter)是個構造函數,參數類型只支持string類型;

3、Convert.ToInt32()適合將Object類型轉換為int型;

4、Convert.ToInt32()和int.Parse()的細微差別:

對於空值(null)的處理不 同,Convert.ToInt32(null)會返回0而不會產生任何異常,但int.Parse(null)則 會產生異常。

舉例來說:

假 如從url中取一個參數page的值,我們知道這個值是一 個int,所以即可以用Convert.ToInt32(Request.QueryString["page"]),也可以 用int.Parse(Request.QueryString["page"]),但是如果page這個參數在url中不 存在,那麼前者將返回0,0可能是一個有效的值,所以你不知道url中原來根本就沒有這個參數而繼續進行下一步的處理,這就可能產生意想不到的效果;而用 後 一種方法的話沒有page這個參數則會拋出異常,我們可以捕獲異常然後再做相應 處理,比如提示用戶缺少參數等,而不是把參數值當做0來處理。

5、再有一點區別是:

(1).Convert.ToInt32(double value) 如果 value 為兩個整數中間的數字,則返回二者中的偶數;即 4.5 轉換為 4,而 5.5 轉換為 6;

(2). int(4.6) = 4,int轉化其他數值類型為int時沒有四捨五入,強制轉換(截取整數部分);

(3). int.Parse(4.5) 會直接報錯:"輸入字元串的格式不正確"。

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).


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 運行 輸入以管理員許可權輸入CMD 如果已安裝密匙先卸載,沒有的話可以跳過 slmgr -upk 卸載密匙命令 輸入對應版密匙以及KMS地址激活 Professional=W269N-WFGWX-YVC9B-4J6C9-T83GX Enterprise=NPPR9-FWDCX-D2C8J-H872K-
  • yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yu
  • 以前剛開始學C#的時候,總有高手跟我說,去瞭解一下IL代碼吧,看懂了你能更加清楚的知道你寫出來的代碼是如何運行互相調用的,可是那時候沒去看,後來補的,其實感覺也不晚。剛開始看IL代碼的時候,感覺非常吃力,一大堆不懂,後來,慢慢看,最後也能看得懂一丁點啦。 閑話不多說了,下麵就開始講講IL代碼 1、什
  • asp.net代碼: 效果: 轉自:http://hovertree.com/h/bjaf/le50giqm.htm 參考:http://hovertree.com/h/bjaf/1ggypq09.htm#hewenqipl winform http://www.cnblogs.com/sosoft
  • 開發ASP.NET MVC,常會使用Razor來呈現內容。下麵有幾個特殊需求的輸出,Insus.NET列出來讓大家參考。雙@@輸出只有一個。 在Razor的語法中,如果想輸出html,它會有兩種語法, 輸出html另一種方法,使用Raw方法來解釋: 在開發的時候,我們有可能這樣需求,就是需要顯示ht
  • 本文轉載自:http://www.youarebug.com/forum.php?mod=viewthread&tid=57&page=1&extra=#pid63 或者: 或者: 或者: 註:上面的代碼主要是數據集的展示功能,需要註意的是填充數據表的語句,是由DataSet對象的Tables屬性的
  • 今天接到新的需求,要求將Excel表格中的數據顯示在頁面上。 我個人分析,首先要將Excel中的數據存到資料庫中,再進行頁面顯示,本人菜鳥級別,以前沒有做過讀取Excel數據,研究了一下(主要是看別人的資料),寫一下實現過程,我想寫幾篇關於Excel的,首先是規則的Excel數據導入,再有就是不規則
  • 出處:http://www.cnblogs.com/free722/archive/2011/11/12/2238654.html 邏輯樹與可視樹 XAML天生就是用來呈現用戶界面的,這是由於它具有層次化的特性。在WPF中,用戶界面由一個對象樹構建而成,這棵樹叫作邏輯樹。 WPF用戶界面的邏輯樹也並
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...