• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 11, 文章 - 0, 評(píng)論 - 58, 引用 - 0
            數(shù)據(jù)加載中……

            初識(shí)C#

            本以為可以有點(diǎn)時(shí)間來(lái)好好學(xué)習(xí)一下MFC,可是昨天和supervisor見(jiàn)了個(gè)面,發(fā)現(xiàn)必須要馬上學(xué)習(xí)C#才行。之前聽(tīng)說(shuō)C# = C++ + Java,花了兩天時(shí)間看了c#的基本語(yǔ)法,發(fā)現(xiàn)果然如此,基本語(yǔ)法和c++沒(méi)什么區(qū)別,代碼結(jié)構(gòu)上又是繼承了Java(比如沒(méi)有頭文件,main()也放在了class里面等)。我看的是《Programming C# 3 0》 5th Edition,這書(shū)寫(xiě)得不錯(cuò),不知道第五版有沒(méi)有中文版(反正我搜索只有第四版的中文版),作者不愧是微軟的人,開(kāi)篇就把c#一頓吹,吹得讓我這種剛學(xué)c#的人信心爆棚,覺(jué)得c#似乎無(wú)所不能,可以勝任各種平臺(tái),包辦本地和web應(yīng)用。哦,他推崇應(yīng)該是.NET,不過(guò)既然c#是.NET的御用語(yǔ)言,當(dāng)然也該推崇了。話說(shuō)回來(lái),Jesse的語(yǔ)言能力和寫(xiě)作水平還是毋庸置疑的,讀起來(lái)還是十分輕松的(不像某Bruce),這可能也和本書(shū)定位有關(guān)(Beginning to Intermediate)。

             

            寫(xiě)下幾點(diǎn)個(gè)人覺(jué)得要記住的地方(或者說(shuō)是比起c++有變化的地方):

             

            1.用于if等語(yǔ)句的條件判斷的表達(dá)式值只能為bool,不能像C++那樣輸入個(gè)int值進(jìn)行判斷了。這樣也帶來(lái)一個(gè)好處,就是像if(test = 20)這樣的語(yǔ)句就無(wú)法通過(guò)編譯了。相信把“==”寫(xiě)成“=”,每個(gè)人都基本干過(guò)吧,當(dāng)然,你可以寫(xiě)成if(20 == test)來(lái)避免錯(cuò)誤。不過(guò),看來(lái)微軟是不喜歡這樣的,畢竟總是倒著寫(xiě)不符合直覺(jué)啊。

            2.switch語(yǔ)句中的每個(gè)非空case必須有顯式的跳轉(zhuǎn),否則程序不會(huì)自動(dòng)進(jìn)入到下一個(gè)case判斷,而是編譯錯(cuò)誤。

            3.當(dāng)為class創(chuàng)建對(duì)象時(shí),所有數(shù)據(jù)成員首先會(huì)被初始化為‘0’(或者null等),然后才是調(diào)用構(gòu)造函數(shù)進(jìn)行初始化。也就是說(shuō),在創(chuàng)建一個(gè)對(duì)象時(shí),實(shí)際上數(shù)據(jù)成員被賦了兩次值。我不知道為什么要設(shè)計(jì)成這樣,也不知道作者提出這一點(diǎn)目的何在,因?yàn)檎{(diào)用構(gòu)造函數(shù)之前的事情似乎完全是不受我們控制的。

            4.構(gòu)造函數(shù)要聲明為public

            5.this是一個(gè)引用而不是指針,不過(guò)就我目前的水平來(lái)看,實(shí)際上使用仍然是一回事。

            6.靜態(tài)成員只能通過(guò)類(lèi)名來(lái)訪問(wèn),若試圖通過(guò)實(shí)例訪問(wèn)就會(huì)編譯錯(cuò)誤。

            7.傳遞參數(shù)為引用時(shí)使用ref。比如function(int& inNumber),應(yīng)該寫(xiě)成function(ref int inNumber)。并且在調(diào)用該函數(shù)是必須顯式地指明:function(ref aNumber)。另一個(gè)修飾符out也能實(shí)現(xiàn)同樣的功能,目前知道的區(qū)別就是:在用out傳入的參數(shù)不要求有初始化值,不過(guò)必須在函數(shù)中給它賦值,否則就報(bào)錯(cuò),而ref則不是必需要求被賦值。(網(wǎng)上搜了下,有這么一句:“Out更適合用在需要Return多個(gè)返回值的地方,而Ref則用在需要被調(diào)用的方法修改調(diào)用者的引用的時(shí)候”,先放在這)

            8.不需要析構(gòu)函數(shù),因?yàn)橛蠫C。不過(guò),當(dāng)你想自己處理非托管資源(unmanaged resources)時(shí),還是需要的。不過(guò)你可以使用某些已經(jīng)包裝好的類(lèi)(wrapper classes)來(lái)避免這種情況(大概是這么個(gè)意思吧,作者提到了FileStream,讓我不禁想到Java里的FileStream)。

            9.修飾符:readonly和const有些類(lèi)似,通過(guò)博客園和csdn上的一些文章,大概記住的區(qū)別有:readonly不要求是static的;只能用于類(lèi)的數(shù)據(jù)成員;只能用構(gòu)造函數(shù)來(lái)初始化(在聲明時(shí)的賦值沒(méi)有意義)。放兩篇文章以便以后學(xué)習(xí):Kenney的《比較C#中的readonly與const》和Allen Lee的《readonly vs. const [C#]》。readonly可以用來(lái)聲明那些在運(yùn)行時(shí)才能確定的常量。

             

            以上,基本就是看《Programming C# 3 0》一部前4章的一些記錄。

            posted on 2008-06-10 22:57 54sun 閱讀(458) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): C#

            評(píng)論

            # re: 初識(shí)C#  回復(fù)  更多評(píng)論   

            第3點(diǎn),.NET是托管的,內(nèi)存管理器是在操作系統(tǒng)上再加了一層。為了保證每個(gè)成員的值都是正確的,至少引用被賦值成null還是很合理的。至于為什么要兩次,估計(jì)還是安全起見(jiàn)。具體不詳。
            2008-06-11 16:38 | 陳梓瀚(vczh)

            # re: 初識(shí)C#  回復(fù)  更多評(píng)論   

            @陳梓瀚(vczh)

            我是覺(jué)得,編譯器只要檢查構(gòu)造函數(shù),確保每個(gè)成員都有被賦值(沒(méi)賦值的自動(dòng)補(bǔ)上),就不需要在運(yùn)行時(shí)進(jìn)行二次賦值了。
            或者說(shuō),相比于編譯期間檢查成員,在運(yùn)行時(shí)使用兩次賦值的開(kāi)銷(xiāo)反而要小一些?
            2008-06-11 20:37 | 54sun
            99久久人妻无码精品系列| 久久久久高潮综合影院| 97久久久久人妻精品专区| av午夜福利一片免费看久久| 人人狠狠综合久久亚洲婷婷| 中文成人久久久久影院免费观看| 久久久久久久久久久| 狠狠88综合久久久久综合网| 久久国产综合精品五月天| 波多野结衣久久一区二区| 国产一区二区三区久久精品| 四虎亚洲国产成人久久精品| 久久ww精品w免费人成| 亚洲精品午夜国产va久久| 99久久久精品| 久久国产劲爆AV内射—百度| 国产精品VIDEOSSEX久久发布| 少妇内射兰兰久久| 人妻无码精品久久亚瑟影视| 国产精品视频久久久| 中文国产成人精品久久不卡| 久久乐国产精品亚洲综合| 久久香蕉国产线看观看99| 伊人久久综合无码成人网| 日批日出水久久亚洲精品tv| 午夜不卡888久久| 久久精品国产半推半就| 久久久久久国产精品无码超碰| 久久久久久久综合狠狠综合| 久久夜色精品国产www| 草草久久久无码国产专区| www.久久热| 狠狠色丁香婷综合久久| 91精品国产91久久综合| 久久r热这里有精品视频| www性久久久com| 久久99精品国产99久久6男男| 狠狠色丁香婷综合久久| 久久香蕉国产线看观看乱码| 欧美精品一本久久男人的天堂| 国产91色综合久久免费|