<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    美麗涵涵童裝店--說我博客名字,給你們打折!
    隨筆 - 82  文章 - 266  trackbacks - 0
    <2007年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678


    點擊這里給楊愛友發(fā)消息
    美麗涵涵童裝店
    說我博客名字,給你們打折!

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章檔案

    好友的BLOG

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     
    [原文出處忘記了,復(fù)制了些對我有幫助的句子記下來,供以后查看]



    1.1
    什么是.NET Framework

    1.1.2 如何用.NET Framework編寫應(yīng)用程序

        使用.NET Framework編寫應(yīng)用程序,就是使用.NET代碼庫編寫代碼(使用支持Framework的任何一種語言)VS是一種強大的集成開發(fā)環(huán)境,支持C#(以及托管和非托管C++Visual Basic和其他一些語言)。這個環(huán)境的優(yōu)點是便于把.NET功能集成到代碼中。為了執(zhí)行C#代碼,必須把它們轉(zhuǎn)換為目標(biāo)操作系統(tǒng)能夠理解的語言,即本機代碼,這種轉(zhuǎn)換稱為編譯代碼,由編譯器執(zhí)行。但在.NET Framework下,這個過程分為兩個階段。

    1. MSILJIT

        在編譯使用.NET Framework庫的代碼時,不是立即創(chuàng)建操作系統(tǒng)特定的本機代碼,而是把代碼編譯為Microsoft中間語言(Microsoft Intermediate LanguageMSIL)代碼,這些代碼不專用于任何一種操作系統(tǒng),也不專用于C#。其他.NET語言,如Visual Basic .NET也可以在第一階段編譯為這種語言,當(dāng)使用VS開發(fā)C#應(yīng)用程序時,編譯過程就由VS完成。

    顯然,要執(zhí)行應(yīng)用程序,必須完成更多的工作,這是Just-In-Time (JIT)編譯器的任務(wù),它把MSIL編譯為專用于OS和目標(biāo)機器結(jié)構(gòu)的本機代碼。這樣OS才能執(zhí)行應(yīng)用程序。這里編譯器的名稱Just-In-Time反映了MSIL僅在需要時才編譯的事實。顧名思義,JIT編譯器使用MSIL代碼,而MSIL代碼是獨立于機器、操作系統(tǒng)和CPU的。目前有幾種JIT編譯器,每種編譯器都用于不同的結(jié)構(gòu),我們總能找到一個合適的編譯器創(chuàng)建所需的本機代碼。

    2. 程序集

        在編譯應(yīng)用程序時,所創(chuàng)建的MSIL代碼存儲在一個程序集中,程序集包括可執(zhí)行的應(yīng)用程序文件(這些文件可以直接在Windows上運行,不需要其他程序,其擴展名是.exe)和其他應(yīng)用程序使用的庫(其擴展名是.dll)

    除了包含MSIL外,程序集還包含元信息(即程序集中包含的數(shù)據(jù)的信息,也稱為元數(shù)據(jù))和可選的資源(MSIL使用的其他數(shù)據(jù),例如聲音文件和圖片)

    3. 托管代碼

        在把代碼編譯為MSIL,再用JIT編譯器把它編譯為本機代碼后,CLR的任務(wù)還沒有全部完成。用.NET Framework編寫的代碼在執(zhí)行(這個階段通常稱為運行時(runtime))時是托管的。即CLR管理著應(yīng)用程序,其方式是管理內(nèi)存、處理安全性,以及允許進行跨語言調(diào)試等。

    4. 垃圾回收

    托管代碼最重要的一個功能是垃圾回收(garbage collection)

    在繼續(xù)學(xué)習(xí)之前,先總結(jié)一下上述創(chuàng)建.NET應(yīng)用程序所需要的步驟:

    (1) 使用某種.NET兼容語言(C#)編寫應(yīng)用程序代碼,如圖1-1所示。

    (2) 把代碼編譯為MSIL,存儲在程序集中,如圖1-2所示。

     

     

    (3) 在執(zhí)行代碼時(如果這是一個可執(zhí)行文件,就自動運行,或者在其他代碼使用它時運行),首先必須使用JIT編譯器將代碼編譯為本機代碼,如圖1-3所示。

     

    (4) 在托管的CLR環(huán)境下運行本機代碼,以及其他應(yīng)用程序或過程,如圖1-4所示。

     

    6. 鏈接

    編譯為MSILC#代碼不一定包含在單獨的文件中,可以把應(yīng)用程序代碼放在多個源代碼文件中,再把它們編譯到一個程序集中,這個過程稱為鏈接。

    1.2 什么是C#  

    C#是可用于創(chuàng)建要運行在.NET CLR上的應(yīng)用程序的語言之一,它從CC++語言演化而來,是Microsoft專門為使用.NET平臺而創(chuàng)建的。C#的優(yōu)點是,它是惟一為.NET Framework設(shè)計的語言,是在移植到其他操作系統(tǒng)上的.NET版本中使用的主要語言。

    1.2.1 C#能編寫什么樣的應(yīng)用程序

    ● Windows應(yīng)用程序 這些應(yīng)用程序如Microsoft Office,使用.NET FrameworkWindows Forms模塊就可以生成這種應(yīng)用程序。Windows Form模塊是一個控件庫,其中的控件(例如按鈕、工具欄、菜單等)可以用于建立Windows用戶界面(UI)

    ● Web應(yīng)用程序 這些是Web頁,可以通過任何Web瀏覽器查看。.NET Framework包括一個動態(tài)生成Web內(nèi)容的強大系統(tǒng),允許個性化、實現(xiàn)安全性等。這個系統(tǒng)叫作Active Server Pages.NET (ASP.NET),我們可以使用C#通過Web Forms 創(chuàng)建ASP.NET應(yīng)用程序。

    ● Web服務(wù) 這是創(chuàng)建各種分布式應(yīng)用程序的新方式,使用Web服務(wù)可以通過Internet虛擬交換數(shù)據(jù)。無論使用什么語言創(chuàng)建Web服務(wù),也無論Web服務(wù)駐留在什么系統(tǒng)上,都使用一樣簡單的語法。

    這些類型也需要某種形式的數(shù)據(jù)庫訪問,這可以通過.NET FrameworkActive Data Objects.NET(ADO.NET)部分來實現(xiàn)。也可以使用許多其他資源,例如創(chuàng)建聯(lián)網(wǎng)組件、輸出圖形、執(zhí)行復(fù)雜數(shù)學(xué)任務(wù)的工具。
     1.2.2 C#與java中的不同之處 


    1. 調(diào)用子類方法與JAVA有變,如下程序片段,其中B是A的子類,speak()方法在B中得到了重寫:
      B b = new B();
      A a = b;
      b.speak();
      a.speak();
    在JAVA中調(diào)用的都是b對象的speak()方法,因為a實際上也是指向b對象;而在c#中則不同,如果speak()是普通方法,則a.speak()調(diào)用的是a中的方法;若speak是虛方法,則調(diào)用的是b中的speak()方法。

    2. visual studio 2005中“調(diào)試”→開始執(zhí)行(Ctrl+F5)為灰色,不能用的解決辦法:
    在右側(cè)的“解決方案”點右鍵→新建項目→已有項目,選擇你本地的項目如ConsoleApplication1.sln,再選擇你要運行的類,“開始執(zhí)行”項就好使了。


    3. c#方法重載:
    1. 對普通方法的重載:
     類中兩個以上的方法,取相同的名字,只要使用的參數(shù)類型或者參數(shù)個數(shù)不同,就實現(xiàn)了對方法的重載。這種重載方式與JAVA是相同的。
    4. 對虛方法重載:
     在派生類中重新定義此虛方法時,要求方法名稱、返回值類型、參數(shù)表的個數(shù)、類型、順序都必須一致,并且要求在聲明中加上override關(guān)鍵字,而且不能有new,static或virtual等修飾符。

    5. 方法密封:
    功能類似于JAVA語言的final,但語法不同。必須是對虛方法重寫時才可以密封,所以sealed總是和override一起出現(xiàn)。下面這個方法將會出現(xiàn)錯誤

    1 class C
    2 {
    3     sealed public void speak()
    4     {
    5         Console.WriteLine("I am c");
    6     }
    7 
    8 }
    9 

     

    6. 屬性與域:
    c#中的域與JAVA的域概念相同;c#中的每個屬性不能直接用對象來訪問,必須通過它的set和get方法,它的set和get方法是定義在對象的屬性里面的,屬性的定義與訪問與JAVA有很大的不同,其格式如下:
     

     1 class SealedTest
     2     {
     3         static void Main()
     4         {
     5             C c = new C();
     6             c.xxx = "yangay";
     7             Console.WriteLine(c.xxx);
     8         }
     9     }
    10 }
    11 ---------------
    12 class C
    13 {
    14     string userName;
    15     public string xxx//為了說明這里的名稱可以與userName名無關(guān),起了XXX。
    16     {
    17         get
    18         {
    19             return userName;
    20         }
    21         set
    22         {
    23             if (userName != value)
    24             {
    25                 userName = value;
    26             }
    27         }
    28 
    29     }
    30 }
    31 
    32 
    posted on 2007-08-30 17:16 楊愛友 閱讀(307) 評論(0)  編輯  收藏 所屬分類: java相關(guān)技術(shù)
    美麗涵涵童裝店
    親,說我博客名字,給你們打折!
    主站蜘蛛池模板: 2015日韩永久免费视频播放| 91频在线观看免费大全| A在线观看免费网站大全| 婷婷亚洲天堂影院| 亚洲黄色免费网站| 黄色网址免费在线| 亚洲综合免费视频| 亚洲午夜激情视频| 在线综合亚洲中文精品| 中文字幕不卡免费高清视频| 成人免费视频网址| 亚洲av日韩av无码| 黄色一级毛片免费| 久久精品网站免费观看| 亚洲精品成人网站在线观看| 亚洲乱妇熟女爽到高潮的片| 日韩免费在线观看视频| 国产成人啪精品视频免费网| 亚洲视频国产视频| 国产无遮挡色视频免费观看性色 | a级毛片免费观看在线| av无码久久久久不卡免费网站| 亚洲精品国产精品国自产观看| 亚洲人成网站18禁止久久影院| 中文字幕免费在线观看动作大片 | 亚洲AV乱码一区二区三区林ゆな| 久久亚洲中文字幕无码| 久草视频免费在线| 亚洲桃色AV无码| 污污免费在线观看| 成人免费午夜视频| 亚洲日本视频在线观看| 全黄大全大色全免费大片| 波多野结衣中文一区二区免费| 亚洲在成人网在线看| 精品国产污污免费网站 | 亚洲综合久久久久久中文字幕| 国产男女爽爽爽免费视频| 国产乱子伦精品免费女| 中国china体内裑精亚洲日本| 小草在线看片免费人成视久网|