欧美日本免费一区二区三区,中文字幕丰满乱孑伦无码专区,免费a级毛片无码鲁大师,亚洲久悠悠色悠在线播放

C#語言

#編程語言# 0 0
C#是微軟公司發(fā)布的一種由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。這是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的面向?qū)ο缶幊陶Z言,它在繼承C和C++強(qiáng)大功能的同時去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#已有廣泛的使用,如虛擬機(jī)、unity游戲引擎的腳本語言等。
  • 中文名稱: C#語言
  • 外文名稱: C#
  • 發(fā)布時間: 2000年06月
  • 創(chuàng)始人: 安德斯·海爾斯伯格
  • 所屬公司: 微軟公司
詳細(xì)介紹 PROFILE +

基本介紹

C#是微軟公司發(fā)布的一種由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言、運(yùn)行于.NET Framework和.NET Core(完全開源,跨平臺)之上的高級程序設(shè)計(jì)語言。并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺亮相。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運(yùn)行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點(diǎn),與COM(組件對象模型)是直接集成的,而且它是微軟公司.NET windows網(wǎng)絡(luò)框架的主角。

C#是由C和C++衍生出來的一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的面向?qū)ο缶幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。

C#是面向?qū)ο蟮木幊陶Z言。它使得程序員可以快速地編寫各種基于MICROSOFT.NET平臺的應(yīng)用程序,MICROSOFT .NET提供了一系列的工具和服務(wù)來最大程度地開發(fā)利用計(jì)算與通訊領(lǐng)域。

C#使得C++程序員可以高效的開發(fā)程序,且因可調(diào)用由C/C++編寫的本機(jī)原生函數(shù),而絕不損失C/C++原有的強(qiáng)大的功能。因?yàn)檫@種繼承關(guān)系,C#與C/C++具有極大的相似性,熟悉類似語言的開發(fā)者可以很快的轉(zhuǎn)向C#。

歷史發(fā)展

C#是微軟公司在2000年6月發(fā)布的一種新的編程語言,主要由安德斯·海爾斯伯格(Anders Hejlsberg)主持開發(fā),它是第一個面向組件的編程語言,其源碼會編譯成msil再運(yùn)行。它借鑒了Delphi的一個特點(diǎn),與COM(組件對象模型)是直接集成的,并且新增了許多功能及語法,而且它是微軟公司.NET windows網(wǎng)絡(luò)框架的主角。

C#讀作“C Sharp”。最初它有個更酷的名字,叫做COOL。微軟從1998年12月開始了COOL項(xiàng)目,直到2000年2月,COOL被正式更名為C#。在1998年,Delphi語言的設(shè)計(jì)者Hejlsberg帶領(lǐng)著Microsoft公司的開發(fā)團(tuán)隊(duì),開始了第一個版本C#語言的設(shè)計(jì)。在2000年9月,國際信息和通信系統(tǒng)標(biāo)準(zhǔn)化組織為C#語言定義了一個Microsoft公司建議的標(biāo)準(zhǔn)。最終C#語言在2001年得以正式發(fā)布。

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

C#是兼顧系統(tǒng)開發(fā)和應(yīng)用開發(fā)的最佳實(shí)用語言,并且很有可能成為編程語言歷史上的第一個“全能”型語言??催^這篇簡史,不要把C#看成年輕后生了——只要是“馬拉多納”,就早晚當(dāng)“球王”。C#1.0,純粹的面向?qū)ο蟆?/p>

1998年底,微軟正在忙于新一代COM的設(shè)計(jì)工作,COM一直是組件化開發(fā)中非常成功的一種技術(shù);但由于它僅提供了二進(jìn)制層面上的統(tǒng)一,因此無法將類型信息和用于支持基礎(chǔ)平臺和開發(fā)工具的信息放到組件中,Java逐步走向成熟。微軟學(xué)習(xí)Java的做法,將虛擬機(jī)的概念引入到了COM領(lǐng)域;同時,微軟提出了“元數(shù)據(jù)”的概念,用于描述組件的類型信息和工具支持信息,并決定將其放入到組件當(dāng)中。

1998年12月,微軟啟動了一個全新的語言項(xiàng)目——COOL,這是一款專門為CLR設(shè)計(jì)的純面向?qū)ο蟮恼Z言,也正是本文的主角——C#的前身。

1999年7月份,微軟完成了COOL語言的一個內(nèi)部版本。

2000年2月份,微軟才正式將COOL語言更名為C#。據(jù)說起這個名字是因?yàn)镃#開發(fā)小組的人很討厭搜索引擎,因此把大部分搜索引擎無法識別的“#”字符作為該語言名字的一部分;還有一種說法是在音樂當(dāng)中“#”是升調(diào)記號,表達(dá)了微軟希望它在C的基礎(chǔ)上更上一層樓的美好愿望——當(dāng)然這些都只是傳說,無從考證。又是歷經(jīng)了一系列的修改,微軟終于在2000年7月發(fā)布了C#語言的第一個預(yù)覽版。

產(chǎn)品設(shè)計(jì)

設(shè)計(jì)目標(biāo)

C#旨在設(shè)計(jì)成為一種“簡單、現(xiàn)代、通用”,以及面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,此種語言的實(shí)現(xiàn),應(yīng)提供對于以下軟件工程要素的支持:強(qiáng)類型檢查、數(shù)組維度檢查、未初始化的變量引用檢測、自動垃圾收集(Garbage Collection,指一種自動內(nèi)存釋放技術(shù))。軟件必須做到強(qiáng)大、持久,并具有較強(qiáng)的編程生產(chǎn)力。此種語言為在分布式環(huán)境中的開發(fā)提供適用的組件開發(fā)應(yīng)用。

為使程序員容易遷移到這種語言,源代碼的可移植性十分重要,尤其是對于那些已熟悉C和C++的程序員而言。對國際化的支持非常重要。C#適合為獨(dú)立和嵌入式的系統(tǒng)編寫程序,從使用復(fù)雜操作系統(tǒng)的大型系統(tǒng)到特定應(yīng)用的小型系統(tǒng)均適用。

.NET Framework

.NET是一個開發(fā)平臺,而C#是一種在.NET開發(fā)平臺上使用的編程語言,目前能在.NET平臺上使用的開發(fā)語言很多,例如Visual Basic.NET、Python、J#、Visual C++.NET等。但在.NET平臺上使用最多的是C#語言。

.NET框架的目的是便于開發(fā)人員容易地建立Web應(yīng)用程序和Web服務(wù),使得Internet上的各應(yīng)用程序之間可以使用 Web 服務(wù)進(jìn)行溝通。

.NET框架由三部分組成。執(zhí)行環(huán)境稱為CLR(Common Language Runtime,公共語言運(yùn)行庫)。CLR在運(yùn)行時管理程序的執(zhí)行,包括:內(nèi)存管理和垃圾收集;代碼安全驗(yàn)證;代碼執(zhí)行、線程管理和異常處理。BCL(Base Class Library,基類庫)是.NET框架使用的一個大的類庫,而且也可以在你的程序中使用。

語言結(jié)構(gòu)

類:一個基本的C#類中包含數(shù)據(jù)成員、屬性、構(gòu)造器和方法。屬性可以是靜態(tài)或?qū)嵗蓡T。在C#中類的聲明與C++和Java很相似。但是,不像C++,C#結(jié)構(gòu)體與類是不支持繼承多個父類。但是,與Java相同的是,一個結(jié)構(gòu)體可以實(shí)現(xiàn)接口(interface)。Java的關(guān)鍵字import已經(jīng)被替換成using,它起到了同樣的作用。

類可以是抽象的和不可繼承的:一個被申明成abstract的類不能被實(shí)例化,它只能被用做一個基類,C#關(guān)鍵字lock就像Java關(guān)鍵字final,它申明一個類不是抽象的,但是它也不能被用做另一個類的基類接口:就象在Java中一樣,一個接口是一組方法集合的抽象定義。當(dāng)一個類或結(jié)構(gòu)體實(shí)現(xiàn)一個接口的時候,它必須實(shí)現(xiàn)這個接口中定義的所有方法。一個單一的類可以實(shí)現(xiàn)幾個接口,也許以后會出現(xiàn)一些微妙的差別,但是這個特點(diǎn)看起來與Java相比沒有變化。

布爾運(yùn)算:條件表達(dá)式的結(jié)果是布爾數(shù)據(jù)類型,布爾數(shù)據(jù)類型是這種語言中獨(dú)立的一種數(shù)據(jù)類型,從布爾類型到其他類型沒有直接的轉(zhuǎn)換過程,布爾常量true和false是C#中的關(guān)鍵字。錯誤處理:如Java中那樣,通過拋出和捕捉異常對象來管理錯誤處理過程。

內(nèi)存管理:由底層.NET框架進(jìn)行自動內(nèi)存垃圾回收。

接口:是其他類型為確保它們支持某些操作而實(shí)現(xiàn)的引用類型。接口從不直接創(chuàng)建而且沒有實(shí)際的表示形式,其他類型必須轉(zhuǎn)換為接口類型。

一個接口定義一個協(xié)定。實(shí)現(xiàn)接口的類或結(jié)構(gòu)必須遵守其協(xié)定。接口可以包含方法、屬性、索引器和事件作為成員。

強(qiáng)類型:C#是一個強(qiáng)類型的語言,它的數(shù)值類型有一些可以進(jìn)行隱式轉(zhuǎn)換,其他的必須顯式轉(zhuǎn)換,隱式轉(zhuǎn)換的類型只能是長度短的類型轉(zhuǎn)換成長的類型,int可以轉(zhuǎn)換成long、float、double、decimal,反之必須顯式的轉(zhuǎn)換。

編譯:程序直接編譯成標(biāo)準(zhǔn)的二進(jìn)制可執(zhí)行形式.但C#的源程序并不是被編譯成二進(jìn)制可執(zhí)行形式,而是一種中間語言(IL),類似于JAVA字節(jié)碼。如果前面的Hello World程序被保存成一個

文本文件并被命名為Hello.cs,它將被編譯成命名Hello.exe的可執(zhí)行程序。

C#程序不能直接編譯成標(biāo)準(zhǔn)的二進(jìn)制可執(zhí)行形式,與Java類似,它被編譯成為中間代碼(Microsoft Intermediate Language),然后通過.NET Framework的虛擬機(jī)——被稱之為通用語言執(zhí)行層(Common Language Runtime, CLR)——執(zhí)行。

一個C#的結(jié)構(gòu)體與C++的結(jié)構(gòu)體是相似的,因?yàn)樗軌虬瑪?shù)據(jù)聲明和方法.但是,不象C++,C#結(jié)構(gòu)體與類是不同的而且不支持繼承.但是,與Java相同的是,一個結(jié)構(gòu)體可以實(shí)現(xiàn)接口。

預(yù)編譯:C#中存在預(yù)編譯指令支持條件編譯,警告,錯誤報(bào)告和編譯行控制.可用的預(yù)編譯指令有:#define,#undef,#if,#elif,#else,#endif,#warning,#error,#line。

沒有了#include偽指令,無法再用#define語句對符號賦值,所以就不存在源代碼替換的概念--這些符號只能用在#if和#elif偽指令里.在#line偽指令里的數(shù)字(和可選的名字)能夠修改行號還有#warning和#error輸出結(jié)果的文件名。

類型:C#中的類型一共分為兩類,一類是值類型(Value Type),一類是引用類型(Reference Type)。值類型和引用類型是以它們在計(jì)算機(jī)內(nèi)存中是如何被分配的來劃分的。值類型包括結(jié)構(gòu)和枚舉,引用類型包括類、接口、委托等。還有一種特殊的值類型,稱為簡單類型(Simple Type),比如byte,int等,這些簡單類型實(shí)際上是FCL類庫類型的別名,比如聲明一個int類型,實(shí)際上是聲明一個System.Int32結(jié)構(gòu)類型。因此,在Int32類型中定義的操作,都可以應(yīng)用在int類型上,比如 “123.Equals(2)”。

所有的值類型都隱式地繼承自System.ValueType類型(注意System.ValueType本身是一個類類型),System.ValueType和所有的引用類型都繼承自System.Object基類。不能顯式地讓結(jié)構(gòu)繼承一個類,因?yàn)镃#不支持多重繼承,而結(jié)構(gòu)已經(jīng)隱式繼承自ValueType。

NOTE:堆棧(stack)是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),在內(nèi)存中,變量會被分配在堆棧上來進(jìn)行操作。堆(heap)是用于為類型實(shí)例(對象)分配空間的內(nèi)存區(qū)域,在堆上創(chuàng)建一個對象,會將對象的地址傳給堆棧上的變量(反過來叫變量指向此對象,或者變量引用此對象)。

中間代碼:微軟在用戶選擇何時MSIL應(yīng)該編譯成機(jī)器碼的時候是留了很大的余地.微軟公司很小心的聲稱MSIL不是解釋性的,而是被編譯成了機(jī)器碼.它也明白許多--如果不是大多數(shù)的話--程序員認(rèn)為Java程序要不可避免的比C編寫的任何東西都要慢.而這種實(shí)現(xiàn)方式?jīng)Q定了基于MSIL的程序(指的是用C#,Visual Basic,"Managed C++"--C++的一個符合CLS的版本--等語言編寫的程序)將在性能上超過"解釋性的"Java代碼.當(dāng)然,這一點(diǎn)還需要得到事實(shí)證明,因?yàn)镃#和其他生成MSIL的編譯器還沒有發(fā)布.但是Java JIT編譯器的普遍存在使得Java和C#在性能上相對相同.象"C#是編譯語言而Java是解釋性的,"之類的聲明只是商業(yè)技巧.Java的中間代碼和MSIL都是中間的匯編形式的語言,它們在運(yùn)行時或其它的時候被編譯成機(jī)器代碼。

數(shù)據(jù)類型

基本數(shù)據(jù)類型:C#擁有比C/C++或者Java更廣泛的數(shù)據(jù)類型.這些類型是bool、byte、sbyte、short、ushort、int、uint、long、ulong、float、double和decimal,像Java一樣,所有這些類型都有一個固定的大小.又像C和C++一樣,每個數(shù)據(jù)類型都有有符號和無符號兩種類型.與Java相同的是,一個字符變量包含的是一個16位的Unicode字符,C#新的數(shù)據(jù)類型是decimal數(shù)據(jù)類型,對于貨幣數(shù)據(jù),它能存放28位10進(jìn)制數(shù)字。

兩個基本類:一個名叫object的類是所有其他類的基類。而一個名叫string的類也象object一樣是這個語言的一部分.作為語言的一部分存在意味著編譯器有可能使用它,無論何時在程序中寫入一句帶引號的字符串,編譯器會創(chuàng)建一個string對象來保存它。

參數(shù)傳遞:方法可以被聲明接受可變數(shù)目的參數(shù).缺省的參數(shù)傳遞方法是對基本數(shù)據(jù)類型進(jìn)行值傳遞。ref關(guān)鍵字可以用來強(qiáng)迫一個變量通過引用傳遞,這使得一個變量可以接受一個返回值。out關(guān)鍵字也能聲明引用傳遞過程,與ref不同的地方是,它指明這個參數(shù)并不需要初始值。

COM的集成:C#對Windows程序最大的賣點(diǎn)可能就是它與COM的無縫集成了,COM就是微軟的Win32組件技術(shù).實(shí)際上,最終有可能在任何.NET語言里編寫COM客戶和服務(wù)器端。C#編寫的類可以子類化一個已存在的COM組件;生成的類也能被作為一個COM組件使用,然后又能使用,比方說,JScript語言子類化它從而得到第三個COM組件。這種現(xiàn)象的結(jié)果是導(dǎo)致了一個運(yùn)行環(huán)境的產(chǎn)生,在這個環(huán)境里的組件是網(wǎng)絡(luò)服務(wù),可用任何.NET語言子類化。

索引下標(biāo):一個索引與屬性除了不使用屬性名來引用類成員而是用一個方括號中的數(shù)字來匿名引用(就象用數(shù)組下標(biāo)一樣)以外是相似的。

代理和反饋:一個代理對象包括了訪問一個特定對象的特定方法所需的信息.只要把它當(dāng)成一個聰明的方法指針就行了。代理對象可以被移動到另一個地方,然后可以通過訪問它來對已存在的方法進(jìn)行類型安全的調(diào)用.一個反饋方法是代理的特例.event關(guān)鍵字用在將在事件發(fā)生的時候被當(dāng)成代理調(diào)用的方法聲明中。

程序執(zhí)行

C#所開發(fā)的程序源代碼并不是編譯成能夠直接在操作系統(tǒng)上執(zhí)行的二進(jìn)制本地代碼。與Java類似,它被編譯成為中間代碼,然后通過.NETFramework的虛擬機(jī)——被稱之為通用語言運(yùn)行庫(CLR)——執(zhí)行。所有的.Net編程語言都被編譯成這種被稱為MSIL(Microsoft Intermediate Language)的中間代碼。因此雖然最終的程序在表面上仍然與傳統(tǒng)意義上的可執(zhí)行文件都具有“.exe”的后綴名。但是實(shí)際上,如果計(jì)算機(jī)上沒有安裝.Net Framework,那么這些程序?qū)⒉荒軌虮粓?zhí)行。在程序執(zhí)行時,.Net Framework將中間代碼翻譯成為二進(jìn)制機(jī)器碼,從而使它得到正確的運(yùn)行。最終的二進(jìn)制代碼被存儲在一個緩沖區(qū)中。所以一旦程序使用了相同的代碼,那么將會調(diào)用緩沖區(qū)中的版本。這樣如果一個.Net程序第二次被運(yùn)行,那么這種翻譯不需要進(jìn)行第二次,速度明顯加快。

特色功能

C#語言是一種安全的、穩(wěn)定的、簡單的、面向?qū)ο蟮木幊陶Z言,它不僅去掉了C++和Java語言中的一些復(fù)雜特性,還提供了可視化工具,能夠高效地編寫程序。

C#語言具備如下4個特點(diǎn):

(1)簡單、安全在C++和C語言中程序員最頭疼的問題就是指針問題,在C#語言中已經(jīng)不再使用指針,而且不允許直接讀取內(nèi)存等不安全的操作。

它比C、C++、Java提供了更多的數(shù)據(jù)類型,并且每個數(shù)據(jù)類型都是固定大小的。

此外還提供了命名空間來管理C#文件,命名空間相當(dāng)于一個文件夾,在創(chuàng)建程序時,允許在一個命名空間中創(chuàng)建一個或多個類,方便調(diào)用和重用。

(2)與其他面向?qū)ο笳Z言一樣,C#語言也具有面向?qū)ο笳Z言的基本特征,即封裝、繼承、多態(tài)。

封裝:就是將代碼看作一個整體,例如使用類、方法、接口等。在使用定義好的類、方法、接口等對象時不必考慮其細(xì)節(jié),只需要知道其對象名以及所需要的參數(shù)即可,也是一種提升代碼安全性的方法。

繼承:是一種體現(xiàn)代碼重用性的特性,減少代碼的冗余,但在C#語言中僅支持單繼承。

多態(tài):不僅體現(xiàn)了代碼的重用性,也體現(xiàn)了代碼的靈活性,它主要通過繼承和實(shí)現(xiàn)接口的方式,讓類或接口中的成員表現(xiàn)出不同的作用。

(3)支持跨平臺最早的C#語言僅能在 Windows平臺上開發(fā)并使用,目前最新的C# 6.0版本已經(jīng)能在多個操作系統(tǒng)上使用,例如在Mac、Linux等。此外,還能將其應(yīng)用到手機(jī)、PDA等設(shè)備上。

(4)開發(fā)多種類型的程序使用C#語言不僅能開發(fā)在控制臺下運(yùn)行的應(yīng)用程序,也能開發(fā)Windows窗體應(yīng)用程序、網(wǎng)站、手機(jī)應(yīng)用等多種應(yīng)用程序,并且其提供的Visual Studio 2015開發(fā)工具中也支持多種類型的程序,讓開發(fā)人員能快速地構(gòu)建 C#應(yīng)用程序。

品牌介紹

版本介紹

C# 1.0-純粹的面向?qū)ο?/strong>

在2003年5月,微軟推出了Visual Studio .NET 2003,同時也發(fā)布了C#的改進(jìn)版本——C# 1.1。

這一時期的C#(以下稱為C# 1.x)提出了純粹的面向?qū)ο蟾拍睢++并非純面向?qū)ο蟮?,為了和C兼容以及提供更高的執(zhí)行效率,它保留了很多模塊化的東西。C#還通過類類型、值類型和接口類型的概念形成了統(tǒng)一的類型系統(tǒng)。

盡管C# 1.x提供了如此多的新鮮概念,但實(shí)際上,這些概念都是由CLI提出的。因此當(dāng)將一個C#源程序編譯為可執(zhí)行文件時,編譯器做的工作相對而言并不多。需要編譯器代勞的是要將一個簡單的委托定義語句翻譯為一個繼承System.MulticastDelegate類型定義。

C# 2.0-泛型編程新概念

微軟在2004年的6月份發(fā)布了Visual Studio2005的第一個Beta 版,同時向開發(fā)者展示了C#語言的2.0版本。2005年4月,微軟發(fā)布了Visual Studio 2005 Beta2,這已經(jīng)是具備了幾乎全部功能的VisualStudio,包括的產(chǎn)品有SQL Server2005、Team Foundation Server和TeamSuite。這時的C#編譯器已經(jīng)能夠處理C# 2.0中所有的新特性。

C# 2.0為開發(fā)者帶來的最主要的特性就是泛型編程能力。和面向?qū)ο笏枷胍粯?,泛型思想也是一種已經(jīng)成熟的編程思想,但依然是沒有哪一種主流開發(fā)語言能夠支持完備的泛型概念。這主要是因?yàn)榉盒偷母拍钤谝欢ǔ潭壬蠈γ嫦驅(qū)ο蟾拍钸M(jìn)行沖擊,同時,由于在編譯期間對類型參數(shù)的完全檢測很難做到,很多問題會被遺留到運(yùn)行時。C# 2.0別出心裁,對泛型類型參數(shù)提出了“約束”的新概念,并以優(yōu)雅的語法體現(xiàn)在語言之中。有了約束,結(jié)合編譯器強(qiáng)大的類型推斷能力,可以在編譯時發(fā)現(xiàn)幾乎所有“危險”的泛型應(yīng)用。

C# 2.0的另一個突出的特性就是匿名方法,用來取代一些短小的并且僅出現(xiàn)一次的委托,使得語言結(jié)構(gòu)更加緊湊。匿名方法除了可以使得事件處理器的編寫更加精簡以外,還將開發(fā)者帶入了程序設(shè)計(jì)的一個新的領(lǐng)域——函數(shù)式編程,曾經(jīng)有高人就用匿名方法結(jié)合泛型編程實(shí)現(xiàn)了函數(shù)式編程中的重要結(jié)構(gòu)——Lambda表達(dá)式。盡管這種實(shí)現(xiàn)顯得很繁瑣而且不易理解,但畢竟是實(shí)現(xiàn)了。

C#3.0-(研發(fā)代號“Orcas”)

2005年9月份的PDC大會——C#3.0(研發(fā)代號“Orcas”——魔鬼)的技術(shù)預(yù)覽版。說到C#3.0,就不得不提一下微軟的LINQ項(xiàng)目,LINQ(語言集成查詢,Language Integrated Query)提出了一種通過面向?qū)ο笳Z法來實(shí)現(xiàn)對非面向?qū)ο髷?shù)據(jù)源的查詢技術(shù),可查詢的數(shù)據(jù)源從關(guān)系型數(shù)據(jù)庫延伸到一般意義上的集合(如數(shù)組和列表)以及XML。而C#3.0則是率先實(shí)現(xiàn)了LINQ的語言。

在C#3.0中,可以用類似于SQL語句的語法從一個數(shù)據(jù)源中輕松地得到滿足一定條件的對象集合。例如要查找一個字符串?dāng)?shù)組names中所有長度大于5的字符串,就可以寫:var longname = from n in names wheren.Length > 5 select n;

這樣就得到一個新的字符數(shù)組longname,其中包含了所需要的結(jié)果。這種語句稱作查詢語句,與SQL語句唯一的區(qū)別是C#中的查詢語句往往把select子句放到最后(這反而倒有些類似于中文的閱讀順序了)。初次看到這樣一個語句,可能會有很大疑問:這還是C#語言嗎?這的確是合乎語法規(guī)則的C#代碼,而且編譯器可以識別這種語法。然而實(shí)際上,C#編譯器并不會對這種語法進(jìn)行實(shí)際的的編譯,而是將其翻譯為正常的方法調(diào)用。

C# 4.0動態(tài)編程

C# 4.0 新增 dynamic關(guān)鍵字,提供動態(tài)編程(dynamic programming),把既有的靜態(tài)物件標(biāo)記為動態(tài)物件,類似javascript, Python 或 Ruby。

C# 10

發(fā)展前景

根據(jù)育龍網(wǎng)資料評價顯示:C#幾乎集中了所有關(guān)于軟件開發(fā)和軟件工程研究的最新成果:面向?qū)ο?、類型安全、組件技術(shù)、自動內(nèi)存管理、跨平臺異常處理、版本控制、代碼安全管理……。盡管像很多人注意到的一樣,羅列上述特性時,總是讓人想到JAVA,然而C#確實(shí)走得更遠(yuǎn)。但現(xiàn)實(shí)的情況是,非技術(shù)的因素往往更能決定一個產(chǎn)品的未來,尤其在計(jì)算機(jī)軟件的歷史上,技術(shù)卓越的產(chǎn)品,如OS/2、Mac OS、UNIX等,都敗在了Windows漂亮的界面上。JAVA的用戶主要是網(wǎng)絡(luò)服務(wù)的開發(fā)者和嵌入式設(shè)備軟件的開發(fā)者,嵌入式設(shè)備軟件不是C#的用武之地,而在網(wǎng)絡(luò)服務(wù)方面,C#的即時編譯和本地代碼Cache方案比JAVA虛擬機(jī)具有絕對的性能優(yōu)勢。何況C#一旦成為一個像C++一樣的公共的標(biāo)準(zhǔn),軟件開發(fā)商既可以省去JAVA的許可證費(fèi)用,也不必?fù)?dān)心成為微軟的奴隸,那些反微軟的人士和主張廠商獨(dú)立的人士可能也不會有什么意見。這可能正是微軟所期待的。

如果把C#和JAVA在網(wǎng)絡(luò)服務(wù)領(lǐng)域的爭奪比作未來制空權(quán)的爭奪,那么C#和傳統(tǒng)通用快速開發(fā)工具——VB、DELPHI等的較量將是地地道道的白刃戰(zhàn)??赡茏顟K的程序員就是VB程序員,在微軟,VB就像離任的克林頓,不但失去了所有的光輝,而且亂事纏身。

其實(shí)在編程語言中真正的霸主多年來一直是C++,所有的操作系統(tǒng)和絕大多數(shù)的商品軟件都是用C++作為主要開發(fā)語言的。JAVA的程序員絕大多數(shù)也是C++的愛好者,PHP的成功里面也有類似C++的語法的功勞。在操作系統(tǒng)、設(shè)備驅(qū)動程序、視頻游戲等領(lǐng)域,C++在很長的時間內(nèi)仍將占據(jù)主要地位,而在數(shù)量最大的應(yīng)用軟件的開發(fā)上,C#很可能取代C++的位置。首先,C#和JAVA一樣,簡直就是照搬了C++的部分語法,因此,對于數(shù)量眾多的C++程序員學(xué)習(xí)起來很容易上手,另外,對于新手來說,比C++要簡單一些。其次,Windows是占壟斷地位的平臺,而開發(fā)Windows應(yīng)用,當(dāng)然微軟的聲音是不能忽略的。最重要的是,相對于C++,用C#開發(fā)應(yīng)用軟件可以大大縮短開發(fā)周期,同時可以利用原來除用戶界面代碼之外的C++代碼。

但是,C#也有弱點(diǎn)。首先,在一些版本較舊的Windows平臺上,C#的程序還不能運(yùn)行,因?yàn)镃# 程序需要.NET運(yùn)行庫作為基礎(chǔ),而.NET運(yùn)行庫作為Windows(XP及以后版本)的一部分發(fā)行,Windows Me和 Windows 2000用戶只能以Service Pack的形式安裝使用。其次,C#能夠使用的組件或庫還只有.NET運(yùn)行庫等很少的選擇,沒有豐富的第三方軟件庫可用,這需要有一個過程,同時各軟件開發(fā)商的支持也很重要。第三,JAVA的成功因素里有一些是反微軟陣營的吹捧,雖然“只寫一次,到處運(yùn)行”只是一句口號,但畢竟已經(jīng)是一種成熟的技術(shù)。而C# 的鼓吹者只有名聲不佳的微軟,且只能運(yùn)行在Windows上。實(shí)際上這兩種語言都不是不可替代的,理智的說,對軟件開發(fā)商而言,什么用的最熟什么就是最好的工具。尤其對C++的使用者,C# 沒有帶來任何新東西,因?yàn)?NET運(yùn)行庫在C++中也可以使用,沒有要換的絕對的理由。

C#將不可避免地崛起,在Windows平臺上成為主角,而JAVA將在UNIX、Linux等平臺上成為霸主,C++將繼續(xù)在系統(tǒng)軟件領(lǐng)域大展拳腳。非常有意思的是,這些語言的語法極其接近,因?yàn)镴AVA和C#都是由C++發(fā)展而來的。其他的開發(fā)工具當(dāng)然還會在相當(dāng)長的時間里繼續(xù)他們的旅程,不過在市場份額上,將不可避免地受到?jīng)_擊。

本百科詞條由網(wǎng)站注冊用戶【 CN103548 】編輯上傳提供,當(dāng)前頁面所展示的詞條介紹涉及宣傳內(nèi)容屬于注冊用戶個人編輯行為,網(wǎng)站不完全保證內(nèi)容信息的準(zhǔn)確性、真實(shí)性,也不代表本站立場。 版權(quán)聲明 反饋 我要認(rèn)領(lǐng)
詞條所在榜單
相關(guān)知識文章
十大熱門編程語言排名 編程語言排行榜 編程語言哪個前景好
全世界有數(shù)種編程語言,但最常用的還是那幾種。如今隨著時代的發(fā)展,一些編程語言的受歡迎程度也發(fā)生著微妙的變化。本文中maiGoo小編就帶大家看看當(dāng)下最具影響力的編程語言有哪些,例如Python、C、C++、Java、C#、JavaScript、Visual Basic、PHP等,仍具有一定代表性,仍是現(xiàn)在最流行的編程語言。
十大二手書交易網(wǎng)站 舊書網(wǎng)站推薦 賣二手書去哪個網(wǎng)站好
伴隨90后、00后新消費(fèi)主力人群的形成,各大二手交易平臺逐漸年輕化,出售閑置物品也更加多元,除了交易數(shù)量較多的汽車、數(shù)碼、服裝等商品外,圖書也是一大類別,相繼衍生的孔夫子舊書網(wǎng)、多抓魚、有路網(wǎng)、舊書街、二手教材網(wǎng)、123圖書館、丁書網(wǎng)等賣舊書的網(wǎng)站/二手書交易網(wǎng)站,成為了許多人的首選交易平臺,下面和maigoo小編一起看看!
十大游戲交易平臺排行榜 正規(guī)游戲賬號交易平臺 熱門游戲交易平臺
游戲交易平臺有官方的,也有第三方的,無論選擇哪一種,“安全交易”都是至關(guān)重要的,下面CNPP小編帶大家了解下游戲交易平臺有哪些、游戲交易平臺哪個好。例如交易貓、5173平臺、淘手游、網(wǎng)易藏寶閣、悠悠游戲服務(wù)網(wǎng)等,相對來說都是具有代表性的。
十大編程軟件排行榜 編程開發(fā)工具大全 c語言編程軟件有哪些
世界上主流的編程語言有C、Java、Python、C++、C#、Visual Basic、PHP等,針對這些編程語言,又有相對應(yīng)的Visual C++、Visual Studio、Eclipse、Dev-C++、Notepad++、MyEclipse、JDK、Code::Blocks、Gcc、Sublime Text、IntelliJ IDEA、Ultraedit、C-Free等編程軟件,被廣泛運(yùn)用,下面跟隨maigoo網(wǎng)編輯一起了解下這些編程工具!
十大天氣預(yù)報(bào)APP軟件 好用的天氣app排行 天氣預(yù)報(bào)軟件哪個最準(zhǔn)確
比達(dá)咨詢(BDR)研究數(shù)據(jù)顯示,我國移動天氣軟件以2009-2013年為萌芽期,各類天氣預(yù)報(bào)app相繼衍生,到2016年得益于大數(shù)據(jù)、物聯(lián)網(wǎng)、云計(jì)算等技術(shù)的應(yīng)用,從而進(jìn)入高速發(fā)展期。時至今日,墨跡天氣、最美天氣、天氣通、彩云天氣、2345天氣王、中國天氣通等天氣app已與人們的生活密不可分,下面跟隨MAIGoo編輯來認(rèn)識下!
十大發(fā)型設(shè)計(jì)軟件 測臉型配發(fā)型軟件叫啥 測適合自己發(fā)型的軟件推薦
我國美容美發(fā)已達(dá)到3500億元以上的市場規(guī)模,并處于不斷增長中。在這個具備千億產(chǎn)值的行業(yè)里,發(fā)型設(shè)計(jì)軟件是一個較新的領(lǐng)域,還有很大的發(fā)展空間。這類軟件一定程度上能幫助個人無成本嘗試新發(fā)型,同時亦具有娛樂性。下面和maigoo小編來看看發(fā)型屋、美可發(fā)型、試發(fā)型相機(jī)、測臉型等臉型測試配發(fā)型的軟件!
十大解壓軟件 解壓縮軟件哪個好用 文件壓縮軟件哪個好
在這個信息碎片化的時代,電腦上各種類型的文件數(shù)不勝數(shù),一款好用的壓縮軟件,既能以較高質(zhì)量集合保存?zhèn)€人信息,又能節(jié)省硬盤空間;縱觀全網(wǎng),備受推崇的解壓縮軟件有WinRAR、7-zip、2345好壓、360壓縮、Bandizip、快壓、WinZip、PeaZip等,下面跟隨MaiGoo網(wǎng)編輯了解下這些解壓軟件!
十大ppt模板網(wǎng)站排行 好用的ppt網(wǎng)站推薦 ppt模板下載網(wǎng)站有哪些
一個優(yōu)秀的PPT,雖然不能決定你的成與敗,但能直接影響觀看者對你的工作能力、產(chǎn)品或服務(wù)的認(rèn)同感,特別是在產(chǎn)品發(fā)布、路演、招商引資等場合。本文中maigoo網(wǎng)編輯盤點(diǎn)了OfficePLUS、優(yōu)品PPT、51PPT、第一PPT、比格PPT、稻殼兒、PPT Store、無憂PPT等ppt模板下載網(wǎng)站、ppt素材網(wǎng)站,下面一起看看!
七大去馬賽克軟件 視頻去馬賽克軟件哪個好用 馬賽克去除工具推薦
馬賽克是使用頻率最高、使用范圍最廣的一種圖片/視頻處理手段,涉及新聞、動漫、電影、連續(xù)劇、寫真等方面。作為一種具備了數(shù)十年歷史的處理技術(shù),馬賽克沿用到今天有什么破解方法呢?Maigoo小編為此盤點(diǎn)了一批去除馬賽克的軟件,其中有JavPlayer、Video Enhancer、DeepCreamPy、TecoGAN、Face Depixelizer、EnhanceNet等視頻馬賽克去除工具,一起看看!
十大游戲陪玩軟件 陪玩app軟件排行 最火的陪玩軟件盤點(diǎn)
我國游戲陪玩市場以“手游陪玩”為主,“比心”“虎牙小鹿陪玩”等多個平臺,是近幾年比較火的陪玩app,然而已被全面封殺,禁止提供陪玩服務(wù)。那么現(xiàn)在市面上,陪玩軟件哪個最好呢?下面maiGoo小編和大家一起了解下斗魚一起玩、小鹿組隊(duì)、Go浪語音、點(diǎn)點(diǎn)開黑等陪玩平臺。
十大動畫制作軟件 動漫制作軟件盤點(diǎn) 自己做動畫的軟件有哪些
動畫制作分為二維動畫與三維動畫技術(shù),涉及軟件主要分為2D和3D二種類型。在動畫行業(yè)中制作動畫的軟件種類越來越多,越來越豐富,你知道哪個動畫制作軟件比較好用?畫動漫軟件哪個好?下面MAIGOO小編就為大家介紹十大最好用動畫制作軟件,分別有Maya、Adobe Animate、3DS Max、AE、C4D、Blender、萬彩動畫大師、Houdini、TVP、Anime Studio Pro。
十大批發(fā)網(wǎng)站 進(jìn)貨批發(fā)網(wǎng)站哪個好 批發(fā)進(jìn)貨平臺有哪些
國家統(tǒng)計(jì)局?jǐn)?shù)據(jù)顯示,我國批發(fā)和零售業(yè)從業(yè)人員據(jù)不完全統(tǒng)計(jì),已有1184.5萬人,在所有批發(fā)領(lǐng)域中,礦產(chǎn)品、建材、化工產(chǎn)品、機(jī)械設(shè)備、五金交電、食品、飲料、煙草、服裝、日用品等,是銷售額最高的品類。本文中magoo編輯盤點(diǎn)了阿里巴巴、義烏購、包牛牛、17網(wǎng)、網(wǎng)商園等進(jìn)貨批發(fā)網(wǎng)站、小商品批發(fā)網(wǎng)站,一起了解下!
十大舊衣服回收平臺 有償回收舊衣服的平臺 正規(guī)回收舊衣服機(jī)構(gòu)
我國每年有數(shù)萬噸舊衣服進(jìn)入垃圾場,極少數(shù)能被回收利用。其實(shí)我們可以把舊衣服捐給貧困地區(qū),也可以二手轉(zhuǎn)賣。下面MaiGoo小編和大家一起看看舊衣物回收平臺有哪些,一起了解下飛螞蟻、白鯨魚、鷗燕回收、92回收、噢啦OOLA等正規(guī)回收舊衣服機(jī)構(gòu)。
十大網(wǎng)絡(luò)電話軟件 網(wǎng)絡(luò)電話哪個軟件好用 網(wǎng)絡(luò)電話呼叫軟件推薦
工信部針對通信業(yè)的相關(guān)報(bào)告顯示,我國三家通訊商的移動電話用戶總數(shù)已超過17.07億,面對龐大的用戶群體,除了手機(jī)實(shí)時電話通訊外,網(wǎng)絡(luò)電話呼叫軟件亦成為主流選擇?,F(xiàn)階段,除了微信、QQ等具有語音功能的社交軟件外,Skype、北瓜電話、Facetime、UU電話等網(wǎng)絡(luò)電話軟件的使用頻率也相對較高,下面跟隨maigoo編輯來看看!
十大室內(nèi)設(shè)計(jì)軟件 裝修設(shè)計(jì)軟件排名 家裝設(shè)計(jì)軟件哪個最好用
室內(nèi)設(shè)計(jì)是一個專業(yè)性極強(qiáng)的領(lǐng)域,設(shè)計(jì)師要在安全、實(shí)用、有限預(yù)算的前提下,充分考慮空間、色彩、光影、裝飾、陳設(shè)、綠化等要素進(jìn)行設(shè)計(jì);那么在當(dāng)今室內(nèi)設(shè)計(jì)領(lǐng)域,有哪些好用的裝修設(shè)計(jì)軟件呢?3D Max、AutoCAD、酷家樂、草圖大師、Lightscape、Sweet Home 3D、愛福窩等室內(nèi)設(shè)計(jì)軟件如何?下面跟隨買購網(wǎng)編輯一起看看!
十大建模軟件排行榜 3d建模軟件有哪些 3d制圖軟件哪個好
3d建模軟件顛覆了傳統(tǒng)的2D模式,在游戲、影視、建筑/室內(nèi)設(shè)計(jì)、VR/AR、電商、工業(yè)設(shè)計(jì)、軍工設(shè)計(jì)等多個重要領(lǐng)域有著廣泛應(yīng)用,并在一定程度上改變著行業(yè)的發(fā)展格局,那么在這種大環(huán)境下,相關(guān)從業(yè)者和愛好者有哪些3D制圖軟件可以使用?3DS MAX、Maya、Rhino、Blender、ZBrush、SketchUp等建模軟件效果如何?下面跟隨maigoo編輯來看看!
十大日本購物網(wǎng)站排名 日本代購網(wǎng)站推薦 日本網(wǎng)上購物平臺有哪些
日本是世界上最大的電商市場之一,位居全球前五。在日本,樂天、亞馬遜、雅虎購物、Zozotown、Kakaku、DMM、Mercari等日本購物平臺,是民眾使用頻率最高的購物網(wǎng)站,其熱銷品類與中國的相比,沒有太大差異,主要是電子產(chǎn)品及配件、家居、玩具、家紡等等。下面和maigoo小編一起了解下這些日本網(wǎng)上購物網(wǎng)站!
十大圍棋軟件排名 下圍棋軟件哪個好 學(xué)圍棋app推薦
在手機(jī)或電腦上下圍棋、象棋、五子棋,或是下跳棋、軍棋等,都非常常見。圍棋軟件拉進(jìn)了棋友們的距離,即使天各一方,也能連上網(wǎng)絡(luò)下一盤棋。下面CNPP小編和大家一起看看圍棋軟件哪個好。相對知名的下圍棋軟件有弈客圍棋、星陣圍棋、弈城圍棋、佳弈少兒圍棋、忘憂圍棋等。
十大攝影網(wǎng)站排名 高清攝影網(wǎng)站推薦 攝影作品網(wǎng)站有哪些
從攝影技術(shù)誕生的第19世紀(jì),到依托科學(xué)技術(shù)變革攝影行業(yè)、帶來一系列創(chuàng)新的21世紀(jì),攝影已完全普及開來,走入了千家萬戶。對許多專業(yè)和業(yè)余攝影者來說,500PX、色影無忌、Flickr、Magnum photos、蜂鳥網(wǎng)、POCO、圖蟲、1X、CNU、LFI等,是最受他們青睞的高清攝影網(wǎng)站,下面和maigoo小編一起了解下這些攝影作品網(wǎng)站!
十大域名網(wǎng)站排名 中文域名購買網(wǎng)站盤點(diǎn) 域名注冊服務(wù)網(wǎng)站哪個好
中國信通院《互聯(lián)網(wǎng)域名產(chǎn)業(yè)報(bào)告》顯示,我國已成為僅次于美國的第二大域名注冊市場,其中中文域名的注冊量已達(dá)到100萬以上,能在世界上的任何地方實(shí)時訪問。本文中maigoo編輯盤點(diǎn)了一批域名注冊服務(wù)網(wǎng)站,如GoDaddy、萬網(wǎng)、西部數(shù)碼、新網(wǎng)、NameSilo、Namecheap、易名等域名注冊商、英文/中文域名網(wǎng)站的市場份額較高,一起看看。
CN103548
注冊用戶-CN103548
相關(guān)主題榜單
熱門榜單
百科榜單
熱門知識分類
行業(yè)品牌展示位
MAIGOO百科詞條為用戶上傳提供或網(wǎng)站編輯整理匯總,目的在于為廣大用戶免費(fèi)提供百科知識,如果您有想創(chuàng)建的詞條或?qū)δ硞€詞條有建議,請通過下面方式提交。
提交詞條 查詢詞條 我要糾錯 賺取金幣