最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#入門之類型轉(zhuǎn)換詳解

 更新時(shí)間:2014年04月15日 11:04:56   作者:  
這篇文章主要介紹了c#的類型轉(zhuǎn)換詳解,類型轉(zhuǎn)換分兩種形式:隱式轉(zhuǎn)換、顯示轉(zhuǎn)換,下面是詳細(xì)介紹

“無論是什么類型,所有的數(shù)據(jù)都是一系列的位,即一系列0和1。變量的含義是通過解釋這些數(shù)據(jù)的方式來傳達(dá)的?!薄@句原話是書上翻譯的,不過后一句話總感覺理解起來不是很通俗,自己覺得這樣理解可能會(huì)合適些:無論什么類型的數(shù)據(jù),在計(jì)算機(jī)存儲(chǔ)時(shí)都是0和1,而變量的意義,就是以不同的方式來解釋這些數(shù)據(jù),以達(dá)到滿足程序應(yīng)用、節(jié)約內(nèi)存等需求。

換句話說:變量存在的意義,就是建立規(guī)(標(biāo))范(準(zhǔn))的數(shù)據(jù)存儲(chǔ)方式。

隱式轉(zhuǎn)換

類型轉(zhuǎn)換分兩種形式:隱式轉(zhuǎn)換、顯示轉(zhuǎn)換。

隱式轉(zhuǎn)換不需要單獨(dú)的表達(dá)式,只需要把滿足隱式轉(zhuǎn)換條件的兩個(gè)變量做相應(yīng)的表達(dá)式操作即可,但隱式轉(zhuǎn)換的結(jié)果可能并不是自己意料之中的:

復(fù)制代碼 代碼如下:

ushort destinationVar;
char sourceVar = 'a';
destinationVar = sourceVar;
Console.WriteLine("sourceVar: {0}", sourceVar);
Console.WriteLine("destinationVar: {0}\n",destinationVar);

上面的輸出結(jié)果,sourceVar的是a,而destinationVar雖然=sourceVar,但輸出的結(jié)果是97??梢钥闯?,雖然兩種數(shù)據(jù)類型滿足隱式轉(zhuǎn)換的條件(存儲(chǔ)的值范圍),但不同的表達(dá)類型決定了最終的結(jié)果也不一樣。另外,和大多數(shù)編程一樣,隱式轉(zhuǎn)換時(shí),只要類型A的取值范圍比類型B的范圍小,就可以隱藏轉(zhuǎn)換為B。

顯示轉(zhuǎn)換

在顯示轉(zhuǎn)換中,可以使用強(qiáng)制轉(zhuǎn)換和Convert。

強(qiáng)制轉(zhuǎn)換只在某些情況下可以,可能應(yīng)用的場景不太豐富,當(dāng)然,這個(gè)的確要方便一些,在變量前加上類似 (byte) 的代碼就可以了:

復(fù)制代碼 代碼如下:

byte destinationVar;
short sourceVar = 281;
destinationVar = (byte)sourceVar;
Console.WriteLine("sourceVar: {0}", sourceVar);
Console.WriteLine("destinationVar: {0}\n",destinationVar);

這個(gè)例子比較有意思,輸出的結(jié)果是:sourceVar: 281, destinationVar: 25; 為什么不是變更為255?這就回到開頭提到的了,其實(shí)轉(zhuǎn)換過程中,丟掉的是數(shù)據(jù)存儲(chǔ)的二進(jìn)制位:

在轉(zhuǎn)換的過程中,會(huì)把超過取值范圍(255二進(jìn)制位)的那個(gè)1丟掉,保留其它的位,所以最終結(jié)果是25,而不是255,也不是281。

Convert轉(zhuǎn)換應(yīng)該是常用的方式,因?yàn)樗冀K會(huì)進(jìn)行溢出檢查。

溢出檢查配置

有些東西雖然沒什么用,但是我們應(yīng)該知道,否則出問題的時(shí)候就不知道怎么解決了。配置:解決方案資源管理器 - 右鍵 - 屬性 - 生成 - 高級(jí) - 檢查運(yùn)算上溢/下溢:

當(dāng)然,對(duì)于強(qiáng)制轉(zhuǎn)換可能需要這個(gè)配置,但使用Convert轉(zhuǎn)換時(shí)始終會(huì)進(jìn)行溢出檢查的,所以這個(gè)配置和checked/unchecked就不起作用了。

結(jié)語

每次一看見那些數(shù)據(jù)類型、表達(dá)式的列表表格就頭疼,因?yàn)楦居洸蛔 >拖衲男╊愋涂梢栽趺崔D(zhuǎn)換成其它的類型的表格一樣,其實(shí)個(gè)人感覺大可不必去記住這些,在實(shí)際做項(xiàng)目的過程中,只要記得有這方面的功能就行了,具體用哪一個(gè),可以再回過頭來翻書或google。

應(yīng)該掌握的是:記住存在隱式轉(zhuǎn)換,但這種方式應(yīng)該盡量少用吧。而顯示轉(zhuǎn)換,方便的就直接用(),當(dāng)然,最可靠的應(yīng)該是Convert,因?yàn)樵谵D(zhuǎn)換時(shí),Convert始終都會(huì)進(jìn)行溢出檢查。

相關(guān)文章

  • C#實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換

    C#實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換

    這篇文章介紹了C#實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • c#實(shí)現(xiàn)爬蟲程序

    c#實(shí)現(xiàn)爬蟲程序

    這篇文章介紹了c#實(shí)現(xiàn)爬蟲程序的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • 基于C#實(shí)現(xiàn)XML文件讀取工具類

    基于C#實(shí)現(xiàn)XML文件讀取工具類

    這篇文章主要介紹了基于C#實(shí)現(xiàn)XML文件讀取工具類,涉及C#針對(duì)XML文件各節(jié)點(diǎn)獲取的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • C#實(shí)現(xiàn)貪吃蛇小游戲

    C#實(shí)現(xiàn)貪吃蛇小游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C#自動(dòng)給文章關(guān)鍵字加鏈接實(shí)現(xiàn)代碼

    C#自動(dòng)給文章關(guān)鍵字加鏈接實(shí)現(xiàn)代碼

    這篇文章主要介紹了C#自動(dòng)給文章關(guān)鍵字加鏈接實(shí)現(xiàn)代碼,有需要的朋友可以參考一下
    2013-12-12
  • 使用C#寫了一個(gè)可以推算火車票身份證號(hào)碼的小程序

    使用C#寫了一個(gè)可以推算火車票身份證號(hào)碼的小程序

    這篇文章主要介紹了使用C#寫了一個(gè)可以推算火車票身份證號(hào)碼的小程序 的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • c#簡單工廠、工廠方法與抽象工廠的區(qū)別分析

    c#簡單工廠、工廠方法與抽象工廠的區(qū)別分析

    看了網(wǎng)絡(luò)上很多關(guān)于設(shè)計(jì)模式的方法,有的模式看起來相似,但本質(zhì)還是區(qū)別很大的.像簡單工廠,工廠方法和抽象工廠就有很明顯的區(qū)別.
    2013-03-03
  • C#使用CefSharp控件實(shí)現(xiàn)爬蟲

    C#使用CefSharp控件實(shí)現(xiàn)爬蟲

    這篇文章介紹了C#使用CefSharp控件實(shí)現(xiàn)爬蟲的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#日歷樣式的下拉式計(jì)算器實(shí)例講解

    C#日歷樣式的下拉式計(jì)算器實(shí)例講解

    如果我們正在做一個(gè)類似于庫存控制和計(jì)費(fèi)系統(tǒng)的項(xiàng)目,有些部分可能必須手動(dòng)計(jì)算數(shù)值。因此,用戶就不得不使用計(jì)算器得到結(jié)果,再填入到輸入字段中,或者在工作窗口上單獨(dú)打開一個(gè)計(jì)算器窗口??傊?,各種不便和麻煩。
    2015-09-09
  • 解讀封送類、結(jié)構(gòu)體和聯(lián)合體實(shí)例

    解讀封送類、結(jié)構(gòu)體和聯(lián)合體實(shí)例

    本文主要介紹了.NETFramework中類、結(jié)構(gòu)體和聯(lián)合體的封送處理,包括類通過COM互操作封送為接口、結(jié)構(gòu)體通過StructLayoutAttribute屬性指定布局和封送方式,以及聯(lián)合體通過StructLayout(LayoutKind.Explicit)和FieldOffset特性精確控制內(nèi)存布局
    2025-01-01

最新評(píng)論

敦化市| 淮南市| 湖口县| 宜兰县| 射阳县| 延津县| 曲阳县| 盐源县| 黑龙江省| 东兰县| 南投县| 西乡县| 连云港市| 芮城县| 湖口县| 凤翔县| 唐山市| 双辽市| 贵溪市| 长寿区| 托克逊县| 泰兴市| 东方市| 凤山市| 清徐县| 泰和县| 遂昌县| 新巴尔虎右旗| 桑植县| 湘阴县| 蒙自县| 保康县| 夹江县| 东乡县| 日喀则市| 连山| 镇宁| 朝阳县| 乌苏市| 顺昌县| 合作市|