C#自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換的講解
自動(dòng)類型轉(zhuǎn)換
隱式類型轉(zhuǎn)換 - 這些轉(zhuǎn)換是 C# 默認(rèn)的以安全方式進(jìn)行的轉(zhuǎn)換, 不會(huì)導(dǎo)致數(shù)據(jù)丟失。例如,從小的整數(shù)類型轉(zhuǎn)換為大的整數(shù)類型,從派生類轉(zhuǎn)換為基類。
轉(zhuǎn)換規(guī)則
從存儲(chǔ)范圍小的類型到存儲(chǔ)范圍大的類型。
整數(shù)具體規(guī)則為:
byte→short(char)→int→long→float→double
也就是說byte類型的變量可以自動(dòng)轉(zhuǎn)換為short類型,示例代碼:
byte b = 10; short sh = b;
在類型轉(zhuǎn)換時(shí)可以跳躍。示例代碼:
byte b1 = 100; int n = b1;
強(qiáng)制類型轉(zhuǎn)換
顯式類型轉(zhuǎn)換 - 顯式類型轉(zhuǎn)換,即強(qiáng)制類型轉(zhuǎn)換。顯式轉(zhuǎn)換需要強(qiáng)制轉(zhuǎn)換運(yùn)算符,而且強(qiáng)制轉(zhuǎn)換會(huì)造成數(shù)據(jù)丟失。
轉(zhuǎn)換規(guī)則
從存儲(chǔ)范圍大的類型到存儲(chǔ)范圍小的類型。
具體規(guī)則為:
double→float→long→int→short(char)→byte
例如:
double d = 5673.74; int i; i = (int)d;
1.Convert.ToInt32() 2. int.Parse()
Convert.ToInt32()
則可以將多種類型(包括 object 引用類型)的值轉(zhuǎn)換為 int 類型,因?yàn)樗性S多重載版本:
- 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()
表示將包含數(shù)字的字符串轉(zhuǎn)換為32 位有符號(hào)整數(shù),屬于內(nèi)容轉(zhuǎn)換
- 如果 string 為空,則拋出 ArgumentNullException 異常;
- 如果 string 格式不正確,則拋出 FormatException 異常;
可以看出來,Convert.ToInt32()
的功能是最強(qiáng)大的,它把Int32.Parse()
功能包括了,也是說是Int32.Parse()是Convert.ToInt32() 的一種特殊情況。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
C#實(shí)現(xiàn)軟件監(jiān)控外部程序運(yùn)行狀態(tài)的方法
這篇文章主要介紹了C#實(shí)現(xiàn)軟件監(jiān)控外部程序運(yùn)行狀態(tài)的方法,可實(shí)現(xiàn)監(jiān)控另一個(gè)程序的運(yùn)行狀態(tài)及觸發(fā)相應(yīng)事件的功能,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12C#發(fā)送Get、Post請(qǐng)求(帶參數(shù))
本文主要介紹了C#發(fā)送Get、Post請(qǐng)求,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09C#結(jié)合SMTP實(shí)現(xiàn)郵件報(bào)警通知的實(shí)現(xiàn)示例
這篇文章主要介紹了C#結(jié)合SMTP實(shí)現(xiàn)郵件報(bào)警通知的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07C#設(shè)計(jì)模式之適配器模式與裝飾器模式的實(shí)現(xiàn)
創(chuàng)建型設(shè)計(jì)模式主要是為了解決創(chuàng)建對(duì)象的問題,而結(jié)構(gòu)型設(shè)計(jì)模式則是為了解決已有對(duì)象的使用問題。本文將用C#語言實(shí)現(xiàn)結(jié)構(gòu)型設(shè)計(jì)模式中的適配器模式與裝飾器模式,感興趣的可以了解一下2022-04-04Unity 從Resources中動(dòng)態(tài)加載Sprite圖片的操作
這篇文章主要介紹了Unity 從Resources中動(dòng)態(tài)加載Sprite圖片的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04