C#介紹


C#是微軟推出的一種基於.NET框架的、面向對象的高級編程語言。
C#以.NET框架類庫作為基礎,擁有類似Visual Basic的快速開發能力。
C#由安德斯·海爾斯伯格主持開發,微軟在2000年發布了這種語言,希望借助這種語言來取代Java。
C#已經成為Ecma國際和國際標准組織的標准規范。

C#的發音為“C sharp”,“#”讀作“sharp”(/ʃɑːp/),
命名啟發於音樂上的音名“C♯”,在音樂中“C♯”表示C升半音,為比C高一點的音節,且“#”形似4個加號,
微軟借助這樣的命名,表示C#在一些語言特性方面對C++的提升的意思。

由於顯示器(標准字體、瀏覽器等)的技術限制,且大部分的鍵盤布局上不存在升記號(♯),
所以井號(#)被用於此編程語言的名稱中,約定在ECMA-334 C#語言規范中。

設計目標

ECMA標准列出的C#設計目標:

1.C#旨在設計成為一種“簡單、現代、通用”,以及面向對象的程序設計語言
2.此種語言的實現,應提供對於以下軟件工程要素的支持:強類型檢查、數組維度檢查、未初始化的變量引用檢測、自動垃圾收集(Garbage Collection,指一種存儲器自動釋放技術)。
軟件必須做到強大、持久,並具有較強的編程生產力。
3.此種語言為在分布式環境中的開發提供適用的組件開發應用。
4.為使程序員容易遷移到這種語言,源代碼的可移植性十分重要,尤其是對於那些已熟悉C和C++的程序員而言。
5.對國際化的支持非常重要。
6.C#適合為獨立和嵌入式的系統編寫程序,從使用復雜操作系統的大型系統到特定應用的小型系統均適用。
7.雖然C#程序在存儲和操作能力需求方面具備經濟性,但此種語言在某些情況下並不能在性能和程序大小方面與C語言相抗衡。

歷史
原Borland公司的首席研發設計師安德斯·海爾斯伯格(Anders Hejlsberg)在微軟開發了Visual J++ 1.0,很快的Visual J++由1.1版本升級到6.0版。
SUN公司認為Visual J++ 違反了Java開發平台的中立性,對微軟提出了訴訟。
2000年6月26日微軟在奧蘭多舉行的“職業開發人員技術大會”(PDC 2000)上,發表新的語言C#。
C#語言取代了Visual J++,語言本身深受Visual Basic、Java、C和C++ 的影響。

版本 語言規格 日期 .NET框架的版本 Visual Studio的版本
ECMA ISO/IEC Microsoft
C# 1.0 2002年12月 2003年4月 2002年1月 2002年1月 .NET Framework 1.0 Visual Studio .NET 2002
C# 1.1
C# 1.2
2003年10月 2003年4月 .NET Framework 1.1英語.NET Framework 1.1 Visual Studio .NET 2003
C# 2.0 2006年6月 2006年9月 2005年9月 2005年11月 .NET Framework 2.0 Visual Studio 2005
C# 3.0 2007年8月 2007年11月

.NET Framework 2.0 (Except LINQ)
.NET Framework 3.0 (Except LINQ)
.NET Framework 3.5

Visual Studio 2008
Visual Studio 2010
C# 4.0 2010年4月 2010年4月 .NET Framework 4 Visual Studio 2010
C# 5.0 2017年12月 2013年6月 2012年8月 .NET Framework 4.5 Visual Studio 2012
Visual Studio 2013
C# 6.0 草案 2015年7月 .NET Framework 4.6 Visual Studio 2015
C# 7.0 2017年3月 .NET Framework 4.6.2 Visual Studio 2017
C# 7.1 2017年8月 .NET Framework 4.7英語.NET Framework 4.7 Visual Studio 2017 version 15.3 
C# 7.2 2017年11月 .NET Framework 4.7.1 Visual Studio 2017 version 15.5 
C# 7.3 2018年5月 .NET Framework 4.7.2 Visual Studio 2017 version 15.7 

語言特性
相對於C和C++,這個語言在許多方面進行了限制和增強:

1指針(Pointer)只能用於不安全模式之中。大多數對象訪問通過安全的引用實現,以避免無效的調用,並且有許多算法用於驗證溢出,指針只能用於調用值類型,以及受垃圾收集控制的托管對象。
2對象不能被顯式釋放,代替為當不存在被引用時通過垃圾回收器回收。
3只允許單一繼承(single inheritance),但是一個類可以實現多個接口(interfaces)。
4C#比C++更加類型安全。默認的安全轉換是隱含轉換,例如由短整型轉換為長整型和從派生類轉換為基類。而接口布爾型同整型,及枚舉型同整型不允許隱含轉換,非空指針(通過引用相似對象)同用戶定義類型的隱含轉換字段被顯式的確定,不同於C++的復制構造函數。
5數組聲明語法不同("int[] a = new int[5]"而不是"int a[5]")。
6枚舉位於其所在的名字空間中。
7C#中沒有模版(Template),但是在C# 2.0中引入了泛型(Generic programming),並且支持一些C++模版不支持的特性。比如泛型參數中的類型約束。另一方面,表達式不能像C++模版中被用於類型參數。
8屬性支持,使用類似訪問成員的方式調用。
9完整的反射支持。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM