官术网_书友最值得收藏!

第1篇 C#基礎

1 C#語言和框架概述

C#(讀作C Sharp)語言是.NET框架重點推出的開發語言,其具備C++語言的安全性和VB(Visual Basic,以下簡稱VB)語言的快速開發特點,是目前最流行的開發語言之一。因為C#語言的類庫全部封裝在.NET框架中,所以在講解具體的C#開發語言前,本章會先介紹.NET框架,其目前的最新版本是3.5。

1.1 .NET 3.5框架

.NET 3.5是Microsoft推出的最新開發框架,其支持目前最流行的開發語言VB和C#,也封裝了一些常用的類庫和組件,通過此框架,可以開發和運行常見的Windows程序和Web程序。本節簡要介紹框架的內容和運行機制。

注意:.NET 3.5框架之前有個.NET 3.0框架,但并沒有流行起來。.NET 3.5包含了.NET 2.0框架和.NET 3.0框架的所有內容。

1.1.1 .NET 3.5框架支持的開發語言

Java語言也是很流行的一種語言,但其必須運行在虛擬機上,這樣可以實現一些跨平臺的應用。而現在最新版本的Visual C# 2008和Visual Basic 2008則必須運行在.NET 3.5框架上。如果要在服務器上運行Visual C# 2008的程序,則必須在服務器上安裝.NET 3.5框架。

提示:Microsoft最新的操作系統Vista自帶.NET 3.0框架。

雖然.NET 3.5是一個成熟的框架,但其底層類庫依然調用的是.NET 2.0以前封裝好的所有類,圖1.1所示的是.NET 3.5框架的基本組成,最上層就是其支持的開發語言。

圖1.1 .NET 3.5框架的基本組成

在.NET 3.5支持的開發語言中,C#和VB最流行。VB一般用來快速開發,在小型Windows應用系統中最常用。C#是Microsoft重點推出的開發語言,其結合了C和C++的一些優點,然后又去除了指針等難于理解的概念,是一門易于上手、易于開發的語言。

1.1.2 C#語言的特色

C#是最流行的開發語言,相比較其他語言,其具備簡單、方便、快速開發等優點,主要特色如下所示。

C#語法與C、C++類似,適合剛畢業的學生入門。

C#支持面向對象開發,并有.NET底層類庫的支持,可以輕松創建對象。

C#的高開發效率。C#的開發工具VS 2005支持拖放式添加控件,開發人員可以輕松完成桌面的布局。

C#通過內置的服務,使組件可以轉化為XML網絡服務,這樣就可以被其他程序調用,也可以被網絡上其他機器的其他程序調用,實現了一次創造、重復利用的高效開發模式。

XML語言是一種最流行的數據描述語言,C#提供了對XML的強大支持,可以輕松地創建XML,也可以將XML數據應用到程序中。

自動的資源回收功能,不用再像C++一樣,為程序運行中的內存管理傷腦筋。

類型安全是編寫代碼優先考慮的問題。C#提供的類型安全機制,可以避免一些常見的類型問題,如類型轉換、數組類型越界等。

在.NET框架中,C#可以自由地和其他語言(VB、J#等)進行轉換。

1.1.3 C#語言的運行機制

如果只是學習用C#編寫一段程序,那很簡單,短短幾行代碼便可以實現;而了解其真正實現的原理,則有助于開發出安全、便于重構的高性能程序。

.NET框架下所有的語言,實際上都是把代碼翻譯成中間語言(簡稱MSIL),然后生成標準程序集。無論是VB語言還是C#語言,它們使用的命名空間和類庫都是中間語言書寫的,所以能夠相互操作和相互調用。從本質上講,就是在個別語言之下加上了一個共同解釋。

.NET中的CLR(公共語言運行時),用來運行生成的MSIL,其實就是將MSIL轉換成COM以執行程序。目前CLR只能在Windows平臺上運行。

綜合上面所述,下面就是一個C#程序編譯運行的簡單步驟。

將編寫的C#程序翻譯成中間語言。

2 經過C#編譯器生成程序集(*.exe/*.dll)。編譯可以使用.NET框架提供的CSC命令,也可以在開發工具Visual Studio中自動編譯。

由公共語言運行時(CLR)執行程序集,生成本地代碼。

其中CLR的工作流程如圖1.2所示。

圖1.2 CLR的工作流程

1.1.4 C#語言的底層類庫

.NET 3.5提供了開發所有應用需要的類庫,但其底層的基礎類庫依然是.NET 2.0的類庫。類庫的主要分類如圖1.3所示。在學習類庫的時候,不需要全部掌握其應用技術,了解類庫的基本架構和實現原理才是最重要的。

圖1.3 類庫的主要分類

1.2 編寫C#語言

Microsoft為C#開發提供了強大的開發工具Visual Studio,下一章將會介紹這個工具。只要安裝了.NET 3.5框架,C#也支持使用記事本進行開發,這個比較簡單,本節將先使用記事本為讀者介紹如何編寫和編譯C#小程序。

1.2.1 用記事本編寫Hello World程序并編譯程序

記事本的缺點就是無法提供自動完成功能,不過對于非常簡短的程序,用其編寫可以一目了然,本例只是讓讀者了解什么是C#程序。

1 編寫程序。在任意系統盤根目錄下創建一個記事本文檔,命名為“helloworld.cs”,其內容如下所示。

using System;
class helloword
{
  public static void Main()
  {
    //輸出字符串
    Console.WriteLine("世界你好!");
  }
}

2 編譯程序。程序編寫好后保存,然后打開操作系統的DOS窗口,輸入csc編譯命令,如下所示,本例helloworld.cs文件保存在G盤下。

csc g:\helloworld.cs

3 輸入上述代碼后,按Enter鍵進行編譯,編譯效果如下所示。

C:\Users\Administrator>csc g:\helloworld.cs
適用于Microsoft(R).NET Framework 3.5版的Microsoft(R) Visual C# 2008 編譯器3.5.21022.8 版
版權所有 (C) Microsoft Corporation。保留所有權利。

4 編譯成功后,其實是生成了一個helloworld.exe文件,可直接在此DOS窗口中輸入“helloworld”,執行此文件,則會輸出源文件設計好的字符串,運行效果如下所示。

C:\Users\Administrator>helloworld
世界你好!

1.2.2 分析代碼格式

在上節介紹的“helloworld.cs”中,代碼雖然簡短,但包含了C#程序必需的一些調用和輸出。本節通過分析下面幾點,讓讀者徹底明白C#代碼的一些基本知識。

(1)C#類文件的擴展名。前面介紹的helloworld.cs文件,以cs作為擴展名,這是所有C#類文件的通用擴展名。.NET 3.5框架可以自動翻譯該文件,生成MSIL中間代碼。

(2)引用命名空間(namespace)。.NET 3.5的特點就是提供了一些封裝好的類庫,開發人員可以通過這些類庫,調用已有的方法,這樣減少了代碼編寫,也提高了開發速度。這些封裝好的類庫分布在不同的命名空間內,其中最基本的命名空間是“System”,引用空間必須使用“using”關鍵字,而且引用表達式必須放在程序的開始處。

(3)面向對象的程序開發。面向對象就是把一些內容封裝在類中,然后統一調用類的內容。類使用關鍵字class聲明,后面緊跟類的名稱,上節就是創建了一個名為“helloworld”的類。編譯后的exe文件與此類名稱相同。

(4)方法定義。public用來定義全局方法,void就是判斷方法是否有返回值,如果是void就不返回任何值,如果是int就返回數值型數據,這些數據形式將在后面的章節介紹。void后面緊跟的是方法的名稱,方法必須帶()。

(5)輸出方法。在System命名空間內包含一個輸出的類“Console”,其可以按行或者按字節輸出各類數據,上例使用了此類的“WriteLine”方法,用來輸出一行數據。

(6)表達式結束符號。在C#中的表達式以分號結束。編譯器碰到分號,便會知道此語句已經結束。

(7)注釋。注釋是一種良好的代碼編寫習慣,也是很多公司要求的規范,在C#中可以用“//”、“///”等實現注釋。

1.3 小結

本章通過分析.NET框架的運行機制和C#語言的特色,了解了一些非常基礎的C#概念。C#是運行在.NET框架上的,而.NET框架只能安裝在Windows的操作系統上,這也限制了C#語言的發展。但.NET框架提供了非常豐富的類庫,通過這些類庫,開發人員可以非常簡便地開發出復雜的應用程序。

本章最后分析了C#語言的一些代碼格式,要成為一個優秀的程序員,一定要保持良好的代碼編寫習慣,這樣便于代碼的維護和升級。

主站蜘蛛池模板: 宜春市| 宿迁市| 漾濞| 荥经县| 巫溪县| 报价| 永和县| 招远市| 宜宾县| 石嘴山市| 罗源县| 汕尾市| 黎川县| 郧西县| 汉源县| 临沭县| 莒南县| 桂东县| 邹平县| 咸丰县| 清丰县| 嘉禾县| 佛山市| 淮南市| 横山县| 九龙县| 禹城市| 汉沽区| 华蓥市| 东平县| 东海县| 荃湾区| 通许县| 固原市| 德昌县| 司法| 襄垣县| 驻马店市| 临猗县| 太湖县| 宿州市|