.NET是平臺(tái),vb.net,c#.net就是.net平臺(tái)下的兩種編程語(yǔ)言,如果你對(duì)vb比較熟悉,可以去學(xué)習(xí)vb.net,其實(shí)就相當(dāng)于vb在.net下的升級(jí)版,但向后兼容性不是很好。
創(chuàng)新互聯(lián)建站-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比路橋網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式路橋網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋路橋地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴(lài)。
.Net平臺(tái)引入了很多先進(jìn)的技術(shù),導(dǎo)致了VB6和VB.Net之間產(chǎn)生了一個(gè)巨大的鴻溝
就語(yǔ)言功能上來(lái)講,VB.net完全是為了.Net技術(shù)而生,具有更好的運(yùn)行效率和更加強(qiáng)大的功能(某些方面甚至超過(guò)了C#)
從語(yǔ)法角度上來(lái)講,VB.net成為了真正的OOP(面向?qū)ο笳Z(yǔ)言),不但支持類(lèi)的繼承、派生,還支持委托、泛型等等更加高級(jí)的編程技術(shù)
如果你是從VB6升級(jí)到.net的話,建議要將VB.net當(dāng)作一門(mén)新的語(yǔ)言來(lái)學(xué)。以VB6的經(jīng)驗(yàn)來(lái)應(yīng)用到VB.net上是會(huì)犯很多錯(cuò)誤的
關(guān)于從VB6升級(jí)到VB.net的代碼變換問(wèn)題,注意以下幾個(gè)重要的要點(diǎn)即可:
1.不再支持Load、Shell、.LoadPicture等語(yǔ)句
請(qǐng)用相關(guān)的.net語(yǔ)句替換
2.String類(lèi)為引用類(lèi),也就是說(shuō)
Dim s1,s2 as String
s1="FFFFFFF"
s2=s1
此時(shí)修改s2的值s1也會(huì)跟著相應(yīng)變化
3.不再支持Variant型和Currency型變量
分別用Object和Demical類(lèi)型代替
4.變量長(zhǎng)度的變化:
VB6的byte、Integer、long型分別被vb.net的byte、short、integer代替,而long型則成為64位大小的整數(shù)。新增了UInteger、ULong、SByte等無(wú)符號(hào)整數(shù)類(lèi)型
一、C#
--- 像VB一樣簡(jiǎn)單,像C++一樣強(qiáng)大的新語(yǔ)
C#是第一流的面向組件的語(yǔ)言
由 Turbo Pascal, Delphi, and Visual J++的首席設(shè)計(jì)師Anders Hejlsberg 傾心3年設(shè)計(jì)
所有的語(yǔ)言元素都是真正的對(duì)象
開(kāi)發(fā)強(qiáng)壯和可重用的軟件
所有的.NET Framework中的基類(lèi)庫(kù)(Base Class Library)都由C# 編寫(xiě)
二、VB.NET
--- 完全面向?qū)ο蟮腂ASIC語(yǔ)言
1.新語(yǔ)言特性
完全面向?qū)ο蟥C? 繼承(Inheritance), 重載(overloading), 共享的成員, 結(jié)構(gòu)化異常處理
強(qiáng)壯的語(yǔ)言 –? 嚴(yán)格的類(lèi)型檢查, 變量聲明時(shí)初始化,支持垃圾收集(Garbage collection)
強(qiáng)大 –? 支持委托(Delegates), free threading,Variant 數(shù)據(jù)類(lèi)型被 Object 代替
2.與VB6一致的語(yǔ)法
三、2者的區(qū)別?
1.語(yǔ)法上的差異
例如循環(huán)的寫(xiě)法
VB.NET
For I = 1 To 10
‘ for loop
Next I
C#
For (i=1;i11;i++) {
// for loop
}
另外Visual Basic 對(duì)大小寫(xiě)不敏感,而C#是大小寫(xiě)敏感的。
2.C# 具有但 Visual Basic 不具有的特性
指針, 移位操作符, 內(nèi)嵌的文檔(XML)
重載操作符
3.Visual Basic具有但 C# 不具有的特性
更豐富的語(yǔ)法: Events, Try…Catch, Select…Case, 實(shí)現(xiàn) Interface
后期綁定(Late binding), 動(dòng)態(tài)數(shù)組, 模塊(modules), 可選參數(shù), 參數(shù)屬性(parameterized properties)
后臺(tái)編譯
vb.net是完全面向?qū)ο蟮恼Z(yǔ)言,支持面向?qū)ο蟮乃膫€(gè)基本屬性:抽象,繼承,多態(tài),封裝,但vb是面向過(guò)程的語(yǔ)言,它只支持部分面向?qū)ο蟮膬?nèi)容像多態(tài),接口等。從 VB 7.0 之后的版本俗稱(chēng) VB.NET,來(lái)源于微軟的.NET戰(zhàn)略,到現(xiàn)在為止有三個(gè)版本
VB 7.0 即VB 2002,對(duì)應(yīng).NET Framework 1.0的版本
VB 7.1 即VB 2003,對(duì)應(yīng).NET Framework 1.1的版本
VB 8.0 即VB 2005,對(duì)應(yīng).NET Framework 2.0的版本
除了語(yǔ)法和使用習(xí)慣的繼承,VB 6.0之前的版本和VB 7.0之后的版本完全沒(méi)有聯(lián)系,幾乎沒(méi)有相同之處,兩種不同體系的語(yǔ)言
沒(méi)有差異, 它們分別由C#編譯器和VB編譯器將你寫(xiě)好的代碼編譯成IL代碼, 再由IL編譯器解釋成機(jī)器可以直接執(zhí)行的機(jī)器代碼. 我們的應(yīng)用程序?qū)嶋H上執(zhí)行的都是封裝在dll里面的IL代碼, 所以從這個(gè)角度來(lái)說(shuō), 它們直接是沒(méi)有性能差異的.
可能存在的差異僅僅可能在C#編譯器和VB編譯器將手寫(xiě)代碼編譯成IL代碼這個(gè)過(guò)程中產(chǎn)生, 不過(guò)肯定差異不大.
請(qǐng)采納, 謝謝.