溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

適合開(kāi)發(fā)桌面軟件的編程語(yǔ)言有哪些

發(fā)布時(shí)間:2020-08-05 10:27:59 來(lái)源:億速云 閱讀:1273 作者:Leah 欄目:互聯(lián)網(wǎng)科技

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)適合開(kāi)發(fā)桌面軟件的編程語(yǔ)言有哪些,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

適合開(kāi)發(fā)桌面軟件的編程語(yǔ)言是C#,C#是微軟公司發(fā)布的一種由C和C++衍生出來(lái)的面向?qū)ο蟮木幊陶Z(yǔ)言,運(yùn)行于“.NET Framework”和“.NET Core”之上的語(yǔ)言,并且具有強(qiáng)大的操作能力、優(yōu)雅的語(yǔ)法風(fēng)格和創(chuàng)新的語(yǔ)言特性。

C# 語(yǔ)言結(jié)構(gòu)

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

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

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

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

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

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

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

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

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

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

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

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

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

操作符重載:一些操作符能夠被重載,而另一些則不能.特別的是,沒(méi)有一個(gè)賦值運(yùn)算符能夠被重載.能夠被重載的單目操作符是:+ - ! ~ ++ -- true false 能夠被重載的二元運(yùn)算符是:+、 - 、*、 /、 %、 &、 |、 ^、 << 、>>、 ==、 !=、 >、 < 、>= 、<=。

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

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

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

中間代碼:微軟在用戶選擇何時(shí)MSIL應(yīng)該編譯成機(jī)器碼的時(shí)候

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

上述就是小編為大家分享的適合開(kāi)發(fā)桌面軟件的編程語(yǔ)言有哪些了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI