C#里三種強制類型轉換


強制類型轉換

在C#中,我們可以看到三種強制類型轉換,比如強制轉換成有符號32位整型,可以找到下面三種方式:

① (int)()                ②Convert.ToInt32()         ③int.Parse()

 

三種轉變在有些數據時可以通用,但是用法上仍然有很大的區別

(int)表示使用顯式強制轉換,是一種類型轉換。當我們從 int 類型到 long、float、double 或decimal 類型,可以使用隱式轉換,但是當我們從 long 類型到 int  類型轉換就需要使用顯式強制轉換,否則會產生編譯錯誤。

Convert.ToInt32() 則可以將多種類型(包括 object  引用類型)的值轉換為 int  類型,因為它有許多重載版本[2]:
    public static int ToInt32(object);
    public static int ToInt32(bool);
    public static int ToInt32(byte);
    public static int ToInt32(char);
    public static int ToInt32(decimal);
    public static int ToInt32(double);
    public static int ToInt32(short);
    public static int ToInt32(long);
    public static int ToInt32(sbyte);
    public static int ToInt32(string);

Int32.Parse()表示將包含數字的字符串轉換為32 位有符號整數,屬於內容轉換

    我們一種常見的方法:public static int Parse(string)。
    如果 string 為空,則拋出 ArgumentNullException 異常;
    如果 string 格式不正確,則拋出 FormatException 異常;
    如果 string 的值小於 MinValue 或大於 MaxValue 的數字,則拋出 OverflowException 異常。
 可以看出來,Convert.ToInt32() 的功能是最強大的,它把Int32.Parse()功能包括了,也是說是Int32.Parse()Convert.ToInt32() 的一種特殊情況。

 

 

備忘:

1.研究C#里的object引用類型,探究為什么有時候數據必須要轉換成object,目前猜想,比如一個IP地址,如果真正要用到函數里或者要獲取的時候可能它不屬於字符串,也不屬於其它類型,這時用object來把數據截取過來

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM