C#的幾個基本概念

  1. CLR – Common Language Runtime

 
爲.NET應用程序提供運行環境。定位、加載和管理.NET類型,同時也負責一些底層細節的工作,如內存管理、創建應用程序域、線程和對象上下文邊界,安全檢查等等。
 
2. CTS – Common Type System
 
完整描述了運行庫所支持的所有可能的數據類型和編程結構,指定了這些實體之間如何交互,也規定了它們在.NET元數據格式中的表示。
 
CTS包括5種基本類型:class, interface, enum, delegate and struct
 
CTS可能的成員:構造器,終結器,靜態構造函數,嵌套類型,運算符,方法,屬性,索引器,字段,只讀字段,常量,事件
 
3. CLS – Common Language Specification
 
定義了一個讓所有.NET語言都支持的公共類型和編程結構的子集。這個可以說是所有語言特性的一個子集,而CTS是所有語言特性的一個合集。
 
CLS定義了一套規則,當程序完全遵守這套規則時,才能確保你的程序能被所有其它.NET語言正確調用。可以通過特性[assembly: System.CLSCompliant(true)]來進行CLS規則驗證。
 
4. BCL - Basic Class Library
 
所有.NET語言都可以調用的一套公共類庫,封裝了很多最基本的類型和服務。
 
5. Managed/Unmanaged code
 
運行在CLR中的代碼叫做managed code,反之稱爲unmanaged code。
 
6. C#的優點
 
不需要指針
自動管理內存 - 垃圾回收機制
面嚮對象語言
操作符重載
支持Attribute
泛型編程更安全
匿名函數的支持
簡化的委託/事件模型
partial class
3.5支持的特性有:
 
LINQ
匿名類型的支持
擴展方法來擴展現有類型
Lambda語法
新的初始化對象語法
7. IL, CIL或者MSIL
 
中間語言,或者成爲公共中間語言。所有的.NET語言代碼編譯後都轉換爲中間語言。目的是爲了支持多語言。
 
8. 程序集內容
 
主要包含了編譯過的IL指令集、類型metadata和manifest(程序集本身的metadata)。類型metadata的作用主要是反射、對象序列化、晚期綁定、wcf以及vs的智能感知等等。manifest除了記錄本程序集的版本、模塊號之外,它還記錄了讓程序集正常運轉的外部程序集信息。
 
9. JIT - just in time
 
即時編譯器。程序運行是嘗試編譯IL指令,生成機器可識別的機器碼,並保存編譯結果。下次調用相同代碼時不需要重新編譯。
 
10. namespace
 
簡單說就是對.NET類型的分組機制。我們最常用到的系統namespace有System.Data, System.IO等等。除了System打頭的命名空間,最有用的還有以Microsoft開頭的命名空間,包含在其中的類型一般都和微軟操作系統服務相關,不能運行在其他OS上,如MAC,Linux等等。
 
11. 查看IL,反編譯
 
使用.NET自帶工具ildasm可以查看程序集IL。使用reflector可以反編譯程序集,你可以從http://www.red-gate.com/products/reflector/下載
 
12. .NET的跨平臺性
 
簡單說就是.NET是跨語言的平臺,同時也支持跨平臺的語言。跨語言的平臺是指它支持多種編程語言,支持跨平臺的語言理論上是說.NET可以在非Windows之外的OS上運行。不過,對於後者,MS本身並沒有做這個工作,僅僅有2個開源的架構在提供有限的支持:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章