• <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>

            C++ Programmer's Cookbook

            {C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

            c#與java(轉)

             

            一、什么是 C#?
            C# 是由Microsoft開發的一種新型編程語言,由于它是從C和C++ 中派生出來的,因此具有C++的功能。同時,由于是Microsoft公司的產品,它又同 VB一樣簡單。對于web開發而言,C#象 Java,同時具有Delphi的一些優點。Microsoft宣稱:C#是開發.NET框架應用程序的最好語言。
            二、Java與 C#
            要學習C#,不能不首先看一看Java語言。
            相對于其他編程語音,Java有一個無庸置疑的優點:用戶以及編譯器第一次不必了解生成可執行代碼的特定CPU細節。Java引入了一個編譯代碼中間層,叫做字節代碼,并使用一個虛擬抽象的機器,而不是一個真實的機器。當Java編譯器結束了一個源文件的編譯后,你所得到的不是可以立即在一個給定平臺上運行的代碼,而是可以在任何真實的平臺上運行的字節代碼,唯一的條件就是這個平臺要理解和支持Java。這些發展包含著一個文化的變革。作為一個開發人員,你只需要確定Java虛擬機(JVM)提供的抽象層,不同的OS銷售商負責執行代碼層,從而將中立于平臺的字節代碼映射到主機平臺的機構中。在這種情況下,Java似乎是統一分布式計算機世界的領袖候選人了。“編寫一次,永遠運行”(并且無論在哪里)一度成為Java誘人但卻真實的口號。
            那么為什么說Java只是“似乎”是一個好東西呢?跨平臺理論的發展很好地證明了這一點。我們看到,將Java代碼從一個平臺移植到另一個平臺—Java這個語言最重要和最受吹捧的特點—并不象宣傳的那樣容易。任何Java平臺都有其自己的虛擬機,它可以理解通用的字節代碼,并且及時地將其編譯為本地代碼。矛盾由此產生,不同虛擬機的執行也很不相同,這一點足以使代碼的移植比預期耗費多得多的時間,而且基本上不是自動的。
            那么,Java模型的好處在哪里呢?首先,Java是一種先進的、面向對象的語言,包含了預防常見錯誤的內置功能,并在僅僅一兩個對象中攜帶了許多經常需要用到的功能。與C++相比,Java更易于讀寫,不容易出錯,而且更加美觀,但是它速度較慢也不太靈活。想實現在任何軟件和硬件平臺上都可虛擬移植,Java盡可能少地使用了公分母模型,也就是說放棄了將每個平臺開發到極限的能力。第二,虛擬機的概念本身就是可移植和可共用的,因此對于分布式環境來說是理想的。Java對于為非Windows平臺開發代碼是最好的語言。
            那么對于Windows平臺來說,Java又怎么樣呢?讓Java適應Windows是不可能的,這是由于Sun的許可約束問題。但是Java實在是太吸引人了,Microsoft比誰都能更清楚這一點。因此,Microsoft又一次采取了“拿來主義”的手法,很好地利用了Java 的眾多特性,隆重推出了Windows平臺的新銳力量,它就是相當簡單但十分強大的面向對象的C#編程語言。C#超過了C++,它天生就包含了.NET框架類庫中的所有類,并使語法簡單化。
            可以說,Java具備的優點,C#都可以或者都將具備!
            三、C#的主要特征
            C# 是.NET的關鍵性語言,它是整個.NET平臺的基礎。與C#相比,.NET所支持的其它語言顯然是配角身份。比如,VB.NET的存在主要是對千萬個VB開發人員的負責。對于JScript.NET和 Managed C++ 也同樣可以這么說,后者只是增加了調用.NET類的C++ 語言。C#是唯一沒有在設計思路中加入了前輩語言某種遺傳的新事物。
            .NET平臺將 C#作為其固有語言,重溫了許多Java的技術規則。C#中也有一個虛擬機,叫做公用語言運行環境(CLR),它的對象也具有同樣的層次。但是 C#的設計意圖是要使用全部的Win32 API甚至更多。由于C#與 Windows的體系結構相似,因此 C# 很容易被開發人員所熟悉。
            Java的目的是要拯救分布式計算世界,C# 則不同。C#本質上是C++的進化產物,使用了包括聲明、表達式及操作符在內的許多C++特征,但是 C#還有更多的增強功能,比如類型安全(type-Safe)、事件處理、碎片帳集、代碼安全性等。在C#中,除了可以使用許多API,更能使用.NET類。特別地是,我們可以處理COM的自動化和C類型的函數。
            C#還讓你調用無管理的代碼,也就是在CLR引擎控制之外的代碼。這種不安全的模式允許你操作原始指針來讀和寫內置碎片帳集控制以外的內存。
            四、安裝運行環境
            安裝.NET SDK 是在機器上運行C# 的第一步。.NET SDK 可以安裝在Windows ME、Windows NT或Windows 2000上,但是最好的選擇是Windows 2000上。選擇了操作系統后,再執行以下步驟:
            ●安裝 IE 5.5
            ●安裝Microsoft .NET Framework SDK。它是免費的,可以從以下站點下載.NET Framework SDK.
            ●完成以上安裝后,就可以在任何文本編輯器中編寫代碼了,最后保存為擴展名為.cs的文件

            五、C# 編輯器
            編寫C#程序可以在文本編輯器中進行,或者在集成開發環境Visual Studio中進行。市場上還有一些第三方編輯器,其中一些是免費的。
            六、C#的程序結構
            一個C#程序包含一個類,這個類中至少有一個公用的靜態方法Main,這個方法對程序進行初始化并終止程序。在Main方法中創建子對象、執行方法并實現軟件的邏輯處理。下面是一個典型的微型C#例程:
            using System;
            class MyFirstApp
            {
            static int Main(String[] args)
            {
            System.Console.WriteLine ("Hello .NET");
            return 1;
            }
            }
            在C#中,要使用下面的聲明來引入外部定義,而不是用象C++中的#include:
            using System;
            using System.Data;
            然后,使用C#編譯器csc.exe編譯代碼。假定將前面的代碼保存為文件hello.cs,使用以下命令:
            csc hello.cs
            結果就生成了hello.exe,它向控制臺輸出窗口寫入信息 "Hello .NET"。
            盡管編譯后的結果文件包含.exe后綴,但hello.exe卻不是一個真正的、明確的CPU代碼段。實際上,它包含了.NET字節代碼。當啟動hello.exe時,CLR 將提取編譯器寫入代碼中的重要元數據。接著,一個叫做 Just-In-Time 編譯器的模塊將代碼映射到特定的 CPU中,開始實際的執行過程。
            七、C# 和名稱空間
            實際中的 C#程序通常包含多個文件,其中每個文件都可以包含一個或多個名稱空間。一個名稱空間就是一個名字,它向編譯器描繪出一些軟件實體,如類、界面、枚舉以及嵌入的名稱空間。名稱空間和數據類型一樣必須有唯一的名稱。在一個C#程序中,可以通過一個元素的完整資格名稱來識別它,這個資格名稱表明出層次關系。例如,System.String是 .NET String類型完整的資格名稱。但是為了簡化代碼起見,只要聲明正在使用System名稱空間:
            using System;
            就可以使用一個相對名稱如String來作為完整名稱的同義詞,而最后依然代表 System.String。
            通過使用namesapce關鍵字,我們還可以將C#程序或者類包裹在自身的名稱空間中,比如:
            namespace MyOwn
            {
            using System; // for String
            class MyFirstApp
            {
            static int Main(String[] args)
            {
            System.Console.WriteLine ("Hello .NET");
            return 1;
            }
            }
            }
            名稱空間 MyOwn 是全局名稱空間的一部分。調用它不需要再使用前綴,因為其完整資格名稱就是簡單的MyOwn。定義一個名稱空間是保持公共名稱唯一性的一個途徑。實際上,如果兩個類的名稱發生沖突,但只要它們分別屬于不同的名稱空間,兩個類仍然是各自唯一的。

            posted on 2005-11-10 16:15 夢在天涯 閱讀(2109) 評論(0)  編輯 收藏 引用 所屬分類: C#/.NET

            公告

            EMail:itech001#126.com

            導航

            統計

            • 隨筆 - 461
            • 文章 - 4
            • 評論 - 746
            • 引用 - 0

            常用鏈接

            隨筆分類

            隨筆檔案

            收藏夾

            Blogs

            c#(csharp)

            C++(cpp)

            Enlish

            Forums(bbs)

            My self

            Often go

            Useful Webs

            Xml/Uml/html

            搜索

            •  

            積分與排名

            • 積分 - 1804603
            • 排名 - 5

            最新評論

            閱讀排行榜

            亚洲中文字幕久久精品无码APP| 一本一道久久a久久精品综合 | 久久国产一区二区| 久久99精品久久久久久9蜜桃| A级毛片无码久久精品免费| 午夜欧美精品久久久久久久| 久久无码国产| 久久996热精品xxxx| 免费精品久久天干天干| 久久亚洲国产精品123区| 亚洲伊人久久精品影院| 久久成人精品| 成人资源影音先锋久久资源网| 久久精品国产久精国产果冻传媒| 99久久精品无码一区二区毛片| 久久亚洲欧美国产精品| 亚洲精品美女久久777777| 久久综合丝袜日本网| 久久精品9988| 久久综合给合久久狠狠狠97色 | 国内精品久久久久伊人av| 亚洲色大成网站WWW久久九九| 青草影院天堂男人久久| 无码人妻久久一区二区三区免费| 久久精品国产亚洲精品| 一本久久精品一区二区| 久久综合综合久久狠狠狠97色88 | 综合久久国产九一剧情麻豆| AAA级久久久精品无码区| 久久精品一区二区三区中文字幕 | 一本色综合网久久| 欧美日韩精品久久久免费观看| 久久九九久精品国产| 9191精品国产免费久久| 久久精品国产福利国产秒| 久久婷婷国产综合精品| 国产精品99久久99久久久| 精品人妻久久久久久888| 久久精品无码午夜福利理论片| 国产呻吟久久久久久久92| 国产精品美女久久久|