- C#入門經典(第7版):C# 6.0 & Visual Studio 2015(.NET開發經典名著)
- (美)Beijamin Perkins Jacob Vibe Hammer Jon D. Reid
- 1463字
- 2021-04-02 21:18:28
1.2 C#的含義
如上所述,C#是可用于創建要運行在.NET CLR上的應用程序的語言之一,它從C和C++語言演化而來,是Microsoft專門為使用.NET平臺而創建的。C#吸取了以往語言失敗的教訓,考慮了其他語言的許多優點,并解決了它們存在的問題。
使用C#開發應用程序比使用C++簡單,因為其語法更簡單。但是,C#是一種強大的語言,在C++中能完成的任務幾乎都能利用C#完成。雖然如此,C#中與C++高級功能等價的功能(例如直接訪問和處理系統內存),只能在標記為“unsafe”的代碼中使用。顧名思義,這個高級編程技術存在潛在威脅,因為它可能覆蓋系統中重要的內存塊,導致嚴重后果。因此,本書不討論這個問題。
C#代碼常比C++略長一些。這是因為C#是一種類型安全的語言(與C++不同)。在外行人看來,這表示一旦為某個數據指定了類型,就不能轉換為另一個不相關的類型。所以,在類型之間轉換時,必須遵守嚴格的規則。執行相同的任務時,用C#編寫的代碼通常比用C++編寫的代碼長。但C#代碼更健壯,調試起來也比較簡單,.NET始終可以隨時跟蹤數據的類型。在C#中,不能完成諸如“把4字節的內存分配給這個數據后,我們使其有10個字節長,并把它解釋為X”等任務,但這并不是一件壞事。
C#只是用于.NET開發的一種語言,但它是最好的一種語言。C#的優點是,它是唯一徹頭徹尾為.NET Framework設計的語言,是在移植到其他操作系統上的.NET版本中使用的主要語言。要使諸如VB.NET的語言盡可能類似于其以前的語言,且仍遵循CLR,就不能完全支持.NET代碼庫的某些功能,至少需要不常見的語法。
但C#能使用.NET Framework代碼庫提供的每種功能。而且,.NET的每個新版本都在C#語言中添加了新功能,滿足了開發人員的要求,使之更強大。
1.2.1 用C#能編寫什么樣的應用程序
如前所述,.NET Framework沒有限制應用程序的類型。C#使用的是.NET Framework,所以也沒有限制應用程序的類型。這里僅討論幾種常見的應用程序類型。
● 桌面應用程序 這些應用程序(如Microsoft Office)具有我們很熟悉的Windows外觀和操作方式,使用.NET Framework的Windows Presentation Foundation(WPF)模塊就可以簡便地生成這種應用程序。WPF模塊是一個控件庫,其中的控件(例如按鈕、工具欄和菜單等)可用于建立Windows用戶界面(UI)。
● Windows Store應用程序 這是Windows 8引入的一類新的應用程序。此類應用程序主要針對觸摸設備設計,通常全屏運行,側重點在于簡潔清晰。創建這類應用程序的方式有多種,包括使用WPF。
● 云/Web應用程序 .NET Framework包括一個動態生成Web內容的強大系統—— ASP.NET,允許進行個性化和實現安全性等。另外,這些應用程序可以在云中駐留和訪問,例如Microsoft Azure平臺。
● Web API 這是建立REST風格的HTTP服務的理想框架,支持許多客戶端,包括移動設備和瀏覽器。
● WCF服務 這是一種靈活創建各種分布式應用程序的方式。使用WCF服務可以通過局域網或Internet交換幾乎各種數據。無論使用什么語言創建WCF服務,也無論WCF服務駐留在什么系統上,都使用一樣簡單的語法。
這些類型的應用程序也可能需要某種形式的數據庫訪問,這可以通過.NET Framework的Active Data Objects .NET(ADO.NET)部分、ADO.NET Entity Framework或C#的LINQ(Language Integrated Query)功能來實現。也可以使用許多其他資源,例如,創建聯網組件、輸出圖形、執行復雜數學任務的工具。
1.2.2 本書中的C#
本書第Ⅰ部分介紹C# 語言的語法和用法,但不過分強調.NET Framework。這是必需的,因為我們不能沒有一點兒C# 編程基礎就使用.NET Framework。首先介紹一些比較簡單的內容,把較復雜的面向對象編程(Object-Oriented Programming, OOP)主題放在基礎知識的后面論述。假定讀者沒有一點兒編程的知識,這些是首要原則。
學習了基礎知識后,本書還將介紹如何開發更復雜、更有用的應用程序。本書第Ⅱ部分將研究基于云的Web應用程序編程,第Ⅲ部分將講述數據訪問(對ORM數據庫、文件系統和XML數據的訪問)和LINQ,第Ⅳ部分將詳細討論桌面和Windows Store應用程序編程。
- OpenShift開發指南(原書第2版)
- Vue.js 2 and Bootstrap 4 Web Development
- MySQL數據庫管理與開發實踐教程 (清華電腦學堂)
- PHP+MySQL+Dreamweaver動態網站開發實例教程
- Nexus規模化Scrum框架
- ArcGIS By Example
- iOS編程基礎:Swift、Xcode和Cocoa入門指南
- LabVIEW虛擬儀器入門與測控應用100例
- JavaScript機器人編程指南
- 算法設計與分析:基于C++編程語言的描述
- C++17 By Example
- Getting Started with hapi.js
- Java Web 從入門到項目實踐(超值版)
- 深入理解Zabbix監控系統
- Python編程基礎與數據分析