C# 温故知新 基础篇(1) C#概述
生活随笔
收集整理的這篇文章主要介紹了
C# 温故知新 基础篇(1) C#概述
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C#概覽
C#語言是微軟于2000年發布,基于.NET Framewrok框架的、面向對象的高級語言。經過近十三年的發展,經歷了5次大的升級,最新版本為C#5.0(對應于.NET Framework 4.5),下面是C#語言發展過程的簡單性總結:| C#版本 | .NET 版本 | Visual Studio 版本 | 特性描述 |
| ? C#???? 1.0/1.2????? | .NET Framework1.0/1.1 | ? Visual Studio??? 2002/2003? ? | C#第一個正式發行版,專為.NET編程提供支持 |
| ?C# 2.0 | ?.NET Framework 2.0 | ?Visual Studio 2005 | C#語言開始支持泛型,.NET Framework 2.0新增了支持泛型的類庫 |
| ?C# 2.0 | ?.NET Framework 3.0 | ?Visual Studio 2005 | .NET Framework 3.0新增了支持分布式通信框架WCF,富客戶端框架WPF, 工作流WF以及基于Web身份驗證(Cardspaces) |
| ?C# 3.0 | ?.NET Framework 3.5 | ?Visual Studio 2008 | 增加了對LINQ的支持,對于集合編程API進行了大幅改進,.NET Framework 3.5對原有類庫進行了擴展,從而支持 |
| ?C# 4.0 | ?.NET Framework 4.0 | ?Visual Studio 2010 | 添加了動態類型(dynamic)的支持,對用于多線程的API進行了大幅改進。強調了多處理和多核心支持 |
| ?C# 5.0 | ?.NET Framework 4.5 | ?Visual Studio 2012 | 主要對異步編程進行了增強(async和await) |
?
?
?
?
?
?
?
托管代碼(managed code):指由"運行時"控制程序的主要行為,管理諸如內存分配、安全性和JIT編譯等方面。 ? ? C#作為一門托管語言,和C/C++這些本地語言不同;C/C++經過編譯后直接變成處理器可執行的機器碼,而C#編譯器則會將C#轉換為CIL(簡稱IL)代碼,而不是機器碼,我們知道C#是基于.NET Framework 框架的語言,CIL代碼轉換為可執行的代碼還需要經過CLR的轉換,CLR根據需要編譯CIL代碼,這個過程稱為JIT編譯(Just-in-time)或即時編譯。下面是C#代碼編譯到執行的過程:C# 代碼執行過程
? 學習一種語言最開的方式就是開始動手寫程序,我們先從一個最簡單的Hello world開始:
1 public class HelloWorld 2 { 3 public static void Main(string[] args) 4 { 5 Console.WriteLine("hello world"); 6 } 7 } 程序編寫完成后將代碼所在文件保存為以.cs為后綴(C#編譯器允許為C#源代碼文件使用任何擴展名,但通常都是使用*.cs);接下來可以直接使用控制臺(如果你想使用Visual Studio也可以)調用編譯器進行編譯(具體步驟參考:通過控制臺調用編譯器和IL反匯編工具),根據前面的示例圖,我們知道C#源碼經過C#編譯器編譯后會生成一個托管模塊,如下: 我們打開源文件所在目錄,源碼經過編譯器編譯后生成了一個exe文件,點擊即可運行。在這里我們需要注意:在進行一次成功的C#編譯之后,生成的肯定是一個程序集,無論它是一個程序,還是一個庫。在前面我們知道:為了執行一個方法,首先必須把它的IL轉換成本地的CPU指令(由CLR的JIT編譯器負責),下面展示了Hello World程序首次調用時發生的情況: 一個方法只有在首次調用的時候會調用JIT編譯器編譯成本地代碼,以后對該方法所有的調用都以本地代碼的形式全速運行,無需重新驗證IL并把它編譯成本地代碼。因為JIT編譯器會將本地CPU指令存儲到動態內存中。下面是方法第二次被調用時的示意圖: 這里我們需要注意,一旦程序終止,編譯好的代碼也會被丟棄。如果再次運行應用程序,JIT編譯器將會再次將IL編譯成本地代碼。?
參考資料&進一步閱讀
維基百科:CSharp
.NET 中的幕后英雄:MSCOREE.DLL
MSDN:C#語言和.NET Framework介紹
《C#本質論》
《CLR VIA》
轉載于:https://www.cnblogs.com/IPrograming/archive/2013/04/03/CSharpAgainOverview.html
總結
以上是生活随笔為你收集整理的C# 温故知新 基础篇(1) C#概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wpf Combobox 样式的问题
- 下一篇: 小小(小小说)