C#中的自動(dòng)類(lèi)型轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換
前面已經(jīng)認(rèn)識(shí)了不同的數(shù)據(jù)類(lèi)型,你們有沒(méi)有嘗試過(guò)讓不同的數(shù)據(jù)類(lèi)型進(jìn)行運(yùn)算呢?
int a = 1; double b = a; Console.WriteLine(b);
運(yùn)行結(jié)果是:1
我們把一個(gè)整型的變量賦值給了一個(gè)浮點(diǎn)型的變量,可以正常的輸出,如果我們把一個(gè)浮點(diǎn)型的變量賦值給一個(gè)整型的變量呢?
double a = 1; int b = a; Console.WriteLine(b);
這樣就會(huì)報(bào)錯(cuò)。
為什么呢?因?yàn)槲覀冎罢f(shuō)過(guò),變量就像一個(gè)容器,里面存放著變量的值。而數(shù)據(jù)類(lèi)型就相當(dāng)于容器的類(lèi)型,決定了容器能夠存放什么樣的值。
試想,生活中我們把小盒子里的東西放進(jìn)大盒子里,是沒(méi)有問(wèn)題的。數(shù)據(jù)類(lèi)型也是這樣。我們把整型的數(shù)據(jù)賦值給浮點(diǎn)型是可以放進(jìn)去的,放進(jìn)去之后里面的值1其實(shí)也就變成了浮點(diǎn)型,即1.0,不過(guò)c#輸出的時(shí)候,很聰明的把后面的.0去掉了。
結(jié)論:占字節(jié)小的可以向占字節(jié)大的自動(dòng)轉(zhuǎn)換,但占字節(jié)大的不能向占字節(jié)小的自動(dòng)轉(zhuǎn)換。
這種數(shù)據(jù)類(lèi)型的轉(zhuǎn)換是自動(dòng)完成的,所以叫做自動(dòng)類(lèi)型轉(zhuǎn)換。
如果我偏要把字節(jié)大的賦值給字節(jié)小的怎么辦呢?試想,生活中我們把大盒子中的東西裝進(jìn)小盒子,東西少還好,東西多了就只能裝進(jìn)去一部分了?,F(xiàn)在我說(shuō),我不聽(tīng)我不聽(tīng),我就是要把大盒子的東西裝進(jìn)小盒子??捱筮蟆?/p>
沒(méi)辦法,我們只能使用強(qiáng)制類(lèi)型轉(zhuǎn)換,即把占字節(jié)大的數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換為占字節(jié)小的數(shù)據(jù)類(lèi)型。
double a = 1.2; int b = (int)a; Console.WriteLine(b);
我們?cè)谝米兞縜給b賦值時(shí),在a前面加了個(gè)括號(hào),就是把數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換為括號(hào)里的數(shù)據(jù)類(lèi)型。我們運(yùn)行一下,結(jié)果是:1
a的值是1.2,強(qiáng)制類(lèi)型轉(zhuǎn)換賦值給了b之后就只剩1了,因?yàn)檎偷臎](méi)有小數(shù)部分,所以裝不下了啊。
總結(jié)
以上所述是小編給大家介紹的C#中的自動(dòng)類(lèi)型轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換 ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝
- 詳解c# 強(qiáng)制轉(zhuǎn)換和類(lèi)型轉(zhuǎn)換
- C# 數(shù)據(jù)類(lèi)型轉(zhuǎn)換
- C#數(shù)據(jù)類(lèi)型轉(zhuǎn)換(顯式轉(zhuǎn)型、隱式轉(zhuǎn)型、強(qiáng)制轉(zhuǎn)型)
- C#類(lèi)型轉(zhuǎn)換之自定義隱式轉(zhuǎn)換和顯式轉(zhuǎn)換
- C#實(shí)現(xiàn)數(shù)組元素的數(shù)據(jù)類(lèi)型轉(zhuǎn)換方法詳解
- C#預(yù)定義的基礎(chǔ)類(lèi)型轉(zhuǎn)換
- 詳解C#如何實(shí)現(xiàn)隱式類(lèi)型轉(zhuǎn)換
- C#避免類(lèi)型轉(zhuǎn)換異常的三種方法
- C# 類(lèi)型轉(zhuǎn)換(隱式類(lèi)型,顯式類(lèi)型,自定義類(lèi)型)
相關(guān)文章
c#設(shè)計(jì)模式之單例模式的實(shí)現(xiàn)方式
這篇文章主要給大家介紹了關(guān)于c#設(shè)計(jì)模式之單例模式的實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11C#實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換
這篇文章介紹了C#實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05C#微信公眾號(hào)開(kāi)發(fā)之接收事件推送與消息排重的方法
這篇文章主要介紹了C#微信公眾號(hào)開(kāi)發(fā)之接收事件推送與消息排重的方法,詳細(xì)分析了事件推送與消息排重的使用技巧,對(duì)微信開(kāi)發(fā)有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01