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


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

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章檔案

          好友的BLOG

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

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



          1.1
          什么是.NET Framework

          1.1.2 如何用.NET Framework編寫應用程序

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

          1. MSILJIT

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

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

          2. 程序集

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

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

          3. 托管代碼

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

          4. 垃圾回收

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

          在繼續學習之前,先總結一下上述創建.NET應用程序所需要的步驟:

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

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

           

           

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

           

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

           

          6. 鏈接

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

          1.2 什么是C#  

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

          1.2.1 C#能編寫什么樣的應用程序

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

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

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

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


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

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


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

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

          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名無關,起了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 楊愛友 閱讀(308) 評論(0)  編輯  收藏 所屬分類: java相關技術
          美麗涵涵童裝店
          親,說我博客名字,給你們打折!
          主站蜘蛛池模板: 临城县| 凤庆县| 武陟县| 仁布县| 桑植县| 神池县| 凌云县| 双鸭山市| 喜德县| 土默特右旗| 布拖县| 神池县| 饶阳县| 通榆县| 大丰市| 通河县| 和龙市| 湘潭市| 建阳市| 集贤县| 香港| 察隅县| 枣庄市| 肥东县| 淄博市| 平泉县| 敦煌市| 永城市| 循化| 吉林市| 习水县| 临猗县| 株洲市| 寿阳县| 洪雅县| 紫云| 鄂托克前旗| 贵阳市| 共和县| 林西县| 大庆市|