終於來到第二章了,真是不容易(呵呵,大家少安毋躁)。
這章總的來說就是對C#的一個總體的概述。首先通過對以往的編程語言(匯編,C/C++,Java,vb)的回顧,強調這些語言與C#的聯系及C#對這些語言優秀特性的繼承,試圖在其中打到C#的影子。然後對現在市面上流行的編程語言與C#進行比較,從而突出C#做為新一代的編程語言的重要性及優越性。之後再次簡述了C#的新特性(感覺作者的廢話太多了)。最後簡述了C#在各種程序開發中的應用及C#的編譯器的使用。
這章的大致內容就是這些,下面依照各分節的順序來看一看各節的主要內容。
語言發展史部分
匯編語言的出現
.Net程序並不包含機器指令,而包含一組必須用運行時程序解釋的中間語言指令。中間語言指令比匯編語言指令更抽象。
中間語言看起來像是一個帶有處理對象的外部命令的匯編語言程序。
C語言部分
這部分主要說明了C#與C的一脈相承。強調了C#在繼承了C的強大功能的同時又鄙棄了其使用的困難性。
VB部分
指出VB在OOP的先天不足,而要強調的是C#功能的完美而且與VB一樣簡單容易上手。
Java部分
在這一節,首先指出了JAVA的優勢,然後當然是對Java的海扁了。不過其中還是有一些可看之處。
在語法上,Java非常類似於C++,但有一些區別
(1)JAVA不支持指針,因為指針是C++程序中許多很難處理的錯誤源。在Java中,對象總是通過引用來處理。
(2)Java不支持運算符重載,因為不正確的運算符重載常常會導致大量的混亂,特別是多個開發人員參與的大型程序。
(3)Java完全是面向對象的,即所有的函數都必須在類的范圍內定義。因為C++支持全局函數,所以C++允許程序員返回它們的過程根。
(4)Java帶有類的擴展分層結構,可以進行窗口、網絡和其他問題域的處理。
(5)Java建議把類的聲明和執行放在同一文件中。
(6)Java運行時提供了一種防止內存遺漏的無用存儲單元收集機制。
與其它語言的比較
這部分寫的太惡心了,說的基本都是C#的好其它語言的壞。
主要的觀點如下:
在與VB的比較中說明C#的面對對象比VB高,在語法上比VB更簡潔。
在與VB.NET的比較中,說明C#是.Net的首選語言。
與VC++比較中說明,C#比C++的效率更高,更容易。
在與C++Builder及Delphi比較中說明C#的平**立性。
下面來看看與Java的比較
(1)C#的語法要比Java強大,因為C#支持運算符重載和類型安全的枚舉,另外,還可以在C#程序中選擇嵌入式指針和其他不合法的語法。
(2)C#可以與以其他.Net語言編寫的代碼進行無縫交互操作
(3)C#可以看作是一個比較便宜、不太完整的Java替代品
(4).Net基類為C#提供了一個統一的、標准化的源,以滿足常用功能的需要。
後面提到的與Javascript及vbscript的比較就不想再多說了,因為實在太牽強。
C#的應用
(1)ASP.Net應用程序
(2)WEB窗體
(3)WEB控件
(4)WEB服務
(5)類庫
(6)Windows應用程序
(7)Windows控件(不必注冊.Net組件,只需把組件的一個副本放在客戶應用程序的目錄下,客戶機就可以訪問它。)
(8)控件台應用程序
C#的特性概覽
(1)基於.Net基類
(2)流控制語句(支持for each結構以及A?B:C)
(3)面向對象的功能
(4)反射和屬性(這塊說的很含糊,不是很明白)
(5)可以處理不安全的代碼
C#編譯器
(1)C#程序編譯的兩種方式,命令行方式和集成的IDE方式。
(2)輸入輸出文件:csc SourceFile.cs /out:TargetFile.exe(大家應該都能看明白)
(3)編譯不同的工程類型(其實關鍵就是參數的不同)
/t:exe 建立控制台應用程序。
/t:winexe 建立Windows FORM應用程序。
/t:library 建立一個包含清單的獨立裝配件。
/t:module 建立一個裝配件文件,但沒有清單。
這章的內容很多,感覺上也很籠統。不過我想對於我們初學者來說掌握這些也應該足夠了。由於這只是個鋪墊,後面還有更多的介紹,所以不想再深究下去了。帶著疑問看下去,不是更好。
讓我們期待下一章吧。