日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 温故知新 基础篇(1) C#概述

發(fā)布時間:2023/12/19 C# 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 温故知新 基础篇(1) C#概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C#概覽

  C#語言是微軟于2000年發(fā)布,基于.NET Framewrok框架的、面向?qū)ο蟮母呒壵Z言。經(jīng)過近十三年的發(fā)展,經(jīng)歷了5次大的升級,最新版本為C#5.0(對應(yīng)于.NET Framework 4.5),下面是C#語言發(fā)展過程的簡單性總結(jié):   
C#版本.NET 版本Visual Studio 版本特性描述
? C#???? 1.0/1.2?????
.NET Framework1.0/1.1? Visual Studio??? 2002/2003? ?
C#第一個正式發(fā)行版,專為.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 添加了動態(tài)類型(dynamic)的支持,對用于多線程的API進行了大幅改進。強調(diào)了多處理和多核心支持
?C# 5.0?.NET Framework 4.5?Visual Studio 2012 主要對異步編程進行了增強(async和await)


?

?

?

?

?

?

?

   托管代碼(managed code):指由"運行時"控制程序的主要行為,管理諸如內(nèi)存分配、安全性和JIT編譯等方面。    ? ? C#作為一門托管語言,和C/C++這些本地語言不同;C/C++經(jīng)過編譯后直接變成處理器可執(zhí)行的機器碼,而C#編譯器則會將C#轉(zhuǎn)換為CIL(簡稱IL)代碼,而不是機器碼,我們知道C#是基于.NET Framework 框架的語言,CIL代碼轉(zhuǎn)換為可執(zhí)行的代碼還需要經(jīng)過CLR的轉(zhuǎn)換,CLR根據(jù)需要編譯CIL代碼,這個過程稱為JIT編譯(Just-in-time)或即時編譯。下面是C#代碼編譯到執(zhí)行的過程:

C# 代碼執(zhí)行過程

?  學(xué)習(xí)一種語言最開的方式就是開始動手寫程序,我們先從一個最簡單的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也可以)調(diào)用編譯器進行編譯(具體步驟參考:通過控制臺調(diào)用編譯器和IL反匯編工具),根據(jù)前面的示例圖,我們知道C#源碼經(jīng)過C#編譯器編譯后會生成一個托管模塊,如下: 我們打開源文件所在目錄,源碼經(jīng)過編譯器編譯后生成了一個exe文件,點擊即可運行。在這里我們需要注意:在進行一次成功的C#編譯之后,生成的肯定是一個程序集,無論它是一個程序,還是一個庫。在前面我們知道:為了執(zhí)行一個方法,首先必須把它的IL轉(zhuǎn)換成本地的CPU指令(由CLR的JIT編譯器負責),下面展示了Hello World程序首次調(diào)用時發(fā)生的情況: 一個方法只有在首次調(diào)用的時候會調(diào)用JIT編譯器編譯成本地代碼,以后對該方法所有的調(diào)用都以本地代碼的形式全速運行,無需重新驗證IL并把它編譯成本地代碼。因為JIT編譯器會將本地CPU指令存儲到動態(tài)內(nèi)存中。下面是方法第二次被調(diào)用時的示意圖: 這里我們需要注意,一旦程序終止,編譯好的代碼也會被丟棄。如果再次運行應(yīng)用程序,JIT編譯器將會再次將IL編譯成本地代碼。

?

參考資料&進一步閱讀

維基百科:CSharp

.NET 中的幕后英雄:MSCOREE.DLL

MSDN:C#語言和.NET Framework介紹

《C#本質(zhì)論》

《CLR VIA》

轉(zhuǎn)載于:https://www.cnblogs.com/IPrograming/archive/2013/04/03/CSharpAgainOverview.html

總結(jié)

以上是生活随笔為你收集整理的C# 温故知新 基础篇(1) C#概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。