自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#強(qiáng)制轉(zhuǎn)換:(int)、Int32.Parse() 和 Convert.toInt32()

開(kāi)發(fā) 后端
本文介紹了C#強(qiáng)制轉(zhuǎn)換問(wèn)題,即(int),Int32.Parse() 和 Convert.toInt32()的三種方法。

在C#強(qiáng)制轉(zhuǎn)換中,(int),Int32.Parse() 和 Convert.toInt32() 三種方法有何區(qū)別?

int 關(guān)鍵字表示一種整型,是32位的,它的 .NET Framework 類(lèi)型為 System.Int32。

(int)表示使用顯式強(qiáng)制轉(zhuǎn)換,是一種類(lèi)型轉(zhuǎn)換。當(dāng)我們從int類(lèi)型到long、float、double 或decimal 類(lèi)型,可以使用隱式轉(zhuǎn)換,但是當(dāng)我們從long類(lèi)型到int類(lèi)型轉(zhuǎn)換就需要使用顯式強(qiáng)制轉(zhuǎn)換,否則會(huì)產(chǎn)生編譯錯(cuò)誤。

Int32.Parse()表示將數(shù)字的字符串轉(zhuǎn)換為32 位有符號(hào)整數(shù),屬于內(nèi)容轉(zhuǎn)換[1]。

我們一種常見(jiàn)的方法:public static int Parse(string)。

如果string為空,則拋出ArgumentNullException 異常;

如果string格式不正確,則拋出FormatException 異常;

如果string的值小于MinValue或大于MaxValue的數(shù)字,則拋出OverflowException異常。

Convert.ToInt32() 則可以將多種類(lèi)型(包括 object  引用類(lèi)型)的值轉(zhuǎn)換為 int  類(lèi)型,因?yàn)樗性S多重載版本[2]:

 

  1. public static int ToInt32(object);  
  2.  
  3.  public static int ToInt32(bool);  
  4.  
  5.  public static int ToInt32(byte);  
  6.  
  7.  public static int ToInt32(char);  
  8.  
  9.  public static int ToInt32(decimal);  
  10.  
  11.  public static int ToInt32(double);  
  12.  
  13.  public static int ToInt32(short);  
  14.  
  15.  public static int ToInt32(long);  
  16.  
  17.  public static int ToInt32(sbyte);  
  18.  
  19.  public static int ToInt32(string);  
  20.  
  21.  ......  

(int)和Int32.Parse(),Convert.ToInt32()三者的應(yīng)用舉幾個(gè)例子:   

例子一:

  1. long longType = 100;  
  2. int intType  = longType;       // 錯(cuò)誤,需要使用顯式強(qiáng)制轉(zhuǎn)換  
  3. int intType = (int)longType; //正確,使用了顯式強(qiáng)制轉(zhuǎn)換 

例子二:

  1. string stringType = "12345";   
  2. int intType = (int)stringType;                //錯(cuò)誤,string 類(lèi)型不能直接轉(zhuǎn)換為 int  類(lèi)型   
  3. int intType = Int32.Parse(stringType);   //正確 

例子三:

  1. long longType = 100;  
  2. string stringType = "12345";  
  3. object objectType = "54321";  
  4. int intType = Convert.ToInt32(longType);       //正確  
  5. int intType = Convert.ToInt32(stringType);     //正確  
  6. int intType = Convert.ToInt32(objectType);    //正確 

例子四[1]:

  1. double doubleType = Int32.MaxValue + 1.011;   
  2. int intType = (int)doubleType;                                //雖然運(yùn)行正確,但是得出錯(cuò)誤結(jié)果  
  3. int intType = Convert.ToInt32(doubleType)            //拋出 OverflowException 異常  

C#強(qiáng)制轉(zhuǎn)換中(int)和Int32.Parse(),Convert.ToInt32()三者的區(qū)別:

***個(gè)在對(duì)long 類(lèi)型或是浮點(diǎn)型到int 類(lèi)型的顯式強(qiáng)制轉(zhuǎn)換中使用,但是如果被轉(zhuǎn)換的數(shù)值大于Int32.MaxValue 或小于 Int32.MinValue,那么則會(huì)得到一個(gè)錯(cuò)誤的結(jié)果。

第二個(gè)在符合數(shù)字格式的string到int 類(lèi)型轉(zhuǎn)換過(guò)程中使用,并可以對(duì)錯(cuò)誤的string數(shù)字格式的拋出相應(yīng)的異常。

第三個(gè)則可以將多種類(lèi)型的值轉(zhuǎn)換為int類(lèi)型,也可以對(duì)錯(cuò)誤的數(shù)值拋出相應(yīng)的異常。

無(wú)論進(jìn)行什么類(lèi)型的數(shù)值轉(zhuǎn)換,數(shù)值的精度問(wèn)題都是我們必須考慮的。

以上就是C#強(qiáng)制轉(zhuǎn)換中的相關(guān)問(wèn)題,供大家參考。

【編輯推薦】

  1. C#調(diào)用VC DLL接口函數(shù)參數(shù)類(lèi)型轉(zhuǎn)換方法介紹
  2. 解決C#中用Oracle執(zhí)行存儲(chǔ)過(guò)程返回DataSet的問(wèn)題
  3. C#線程同步技術(shù)之Monitor
  4. C#線程同步與死鎖
  5. C#線程:線程池和文件下載服務(wù)器
責(zé)任編輯:book05 來(lái)源: cnblogs
相關(guān)推薦

2009-08-21 17:07:53

C# Convert.

2009-08-26 15:04:35

C#轉(zhuǎn)換

2009-08-13 17:25:18

C# Convert類(lèi)

2023-09-14 16:02:27

2011-06-17 16:42:23

C#

2009-09-01 17:06:20

C#命名管道

2009-08-24 14:20:13

C# 強(qiáng)制類(lèi)型轉(zhuǎn)換

2024-03-19 14:18:48

C#后端編程

2009-07-31 15:47:20

Win32 APIC#

2009-08-28 15:45:32

C#操作Win32 A

2021-08-30 07:22:15

Go類(lèi)型interface

2021-07-27 06:49:11

數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)

2009-09-01 16:35:55

C#操作String數(shù)

2009-08-21 09:57:08

C#操作符IS與AS

2023-12-12 08:50:22

MySQL隱式轉(zhuǎn)換varchar

2009-06-05 11:16:58

字符串動(dòng)態(tài)轉(zhuǎn)換

2023-01-17 14:01:19

JavaScript類(lèi)型轉(zhuǎn)換字符串

2021-03-08 15:33:46

Windows10操作系統(tǒng)微軟

2009-08-12 18:28:49

C#強(qiáng)制類(lèi)型轉(zhuǎn)化

2009-08-24 09:55:26

C#接口轉(zhuǎn)換
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)