第一,VB什么時候都不是世界上使用人數最多的語言。其次,我真的不知道VB這東西有什么好的,如果說VB給當初困擾中的windows程序員們提供了一個所見即所得的UI開發環境,那么其實他們真的應該多關注Delphi、C++
公司主營業務:網站建設、成都網站建設、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。創新互聯建站是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創新互聯建站推出漢中免費做網站回饋大家。
Builder。第三,.NET跟微軟的web
service也沒有一毛錢的關系,微軟第一個web
service的標準是SOAP,2000年左右出的。VB.NET與其說是VB,不如說是微軟為了挽留VB程序員做的努力。拿VB去比C++更是令人發指。第四,.NET并非一個編程語言,C#、VB.NET、托管VC、Delphi
.NET都是.NET家族的。
1、從OOP概念上講,VB不是一個真正的面對對象的語言,他不支持繼承等一些面對對象的特性,而VB.net是一個面對對象的語言,支持這些特性
2、VB和VB.net都可以用來網絡編程的,這點可以肯定,兩者都有這個功能
VB是通過控件進行網絡編程,而VB.net可以通過VB的控件,也可以是用.net框架提供的system.net命名空間下的所有的類
3、正確理解VB.net中的.net,.NET 是微軟推出的一種新的編程思想和模式,對于網絡提出了一個新的概念(當然功能有了很大的革新),微軟在.net 框架中規定了通用語言規范,只要符合這個規范,都可以利用.net強大的功能來完成任務,比如delphi.net ,他是.net和通用語言規范結合的產物,.net 框架提供了好多功能,簡單列出一些命名空間
System 包含所有的數據類型和...
System.IO包含Windows文件,數據流的訪問操作和...
System.Net包含網絡有關的各種協議TCP,UDP等等和...
System.Text包含字有關的,比如經典正則表達式
System.Data包含訪問數據的所有的類
System.Web包含Web有關的,比如Web Services的新概念
System.Drawing包含GDI+的所有功能,可以繪制圖形
System......等等
當然還包括Microsoft.VisualBasic等微軟產品的系列的命名空間
這些命名空間可以用于所有.net的應用程序,比如可以用System.Drawing包含GDI+的所有功能來Web上動態的設計圖表
而實現它就可以用VB.net的語言
4、可以寬泛的來解釋就是:VB.net=VB(OOP)+.net
5、VB.net的運行方式和VB不同,比如VB就是通過一個DLL動態鏈接庫文件來編譯的,而VB.net是先生稱MSIL(微軟中間語言)代碼,然后通過通用語言運行時,將MSIL繼續編譯生成更好更高效的代碼。這位朋友可以試著用一下.net下的vbc.exe編譯工具,寫個小程序編譯下試試
6、兩者語法相同,但有少許差異,VB.net的運算符和一些錯誤處理機制多了一些
7、VB和VB.net最擅長用于快速開發,不需要太過于考慮性能的快速開發,但是VB.net和其他語言的功能天生是相等的,現在的VB.net用于Web應用程序,WinForm應用程序開發的情況就比較多,而其他應用我不是很了解或一時想不出來,我有個朋友就是用.net做嵌入式開發的,但他們公司也用.net 做3G開發
8、狗屁六級的vrhero,“VB.NET也是VB”還在這兒放這么多廢屁,這樣的人就是沒事找抽型 把你的6個問題也給解釋一下,1、smalltalk是純粹的OOP語言,Java %90的OOP,VB不支持OOP的特性,所以不完全是,夠明白了吧2、完全不知所云---我寫的這些不是拷過來的,不能說我不知所云3、我只是把我經常用到的命名空間告訴這位朋友不為過4、誤人子弟,屁話5、屁話6、筆誤,是我的錯7、你用VC++開發web給我看看,相比VB.net和C#看看那個快,各種語言都各有所長,不是我說的,微軟.net系列清華出版的這么多書,那本不都有說明嗎?你補充的那幾句,學過.net的人都知道,沒有實用價值。
“除了語法和使用習慣的繼承,VB 6.0之前的版本和VB 7.0之后的版本完全沒有聯系,幾乎沒有相同之處,兩種不同體系的語言”和“VB.NET也是VB ”這種自相矛盾的話,就認為這位高級經理是大腦發熱,筆誤吧!
都說在.NET里,.NET framework和CLR是應用運行的基礎。那么VB.NET和C#是不是就完全一樣,只是語法不同嗎?
一、C#
--- 像VB一樣簡單,像C++一樣強大的新語
C#是第一流的面向組件的語言
由 Turbo Pascal, Delphi, and Visual J++的首席設計師Anders Hejlsberg 傾心3年設計
所有的語言元素都是真正的對象
開發強壯和可重用的軟件
所有的.NET Framework中的基類庫(Base Class Library)都由C# 編寫
二、VB.NET
--- 完全面向對象的BASIC語言
1.新語言特性
完全面向對象– 繼承(Inheritance), 重載(overloading), 共享的成員, 結構化異常處理
強壯的語言 – 嚴格的類型檢查, 變量聲明時初始化,支持垃圾收集(Garbage collection)
強大 – 支持委托(Delegates), free threading,Variant 數據類型被 Object 代替
2.與VB6一致的語法
三、2者的區別?
1.語法上的差異
例如循環的寫法
VB.NET
For I = 1 To 10
‘ for loop
Next I
C#
For (i=1;i11;i++) {
// for loop
}
另外Visual Basic 對大小寫不敏感,而C#是大小寫敏感的。
2.C# 具有但 Visual Basic 不具有的特性
指針, 移位操作符, 內嵌的文檔(XML)
重載操作符
3.Visual Basic具有但 C# 不具有的特性
更豐富的語法: Events, Try…Catch, Select…Case, 實現 Interface
后期綁定(Late binding), 動態數組, 模塊(modules), 可選參數, 參數屬性(parameterized properties)
后臺編譯
C#與VB.net間移植的技巧
按理說,這兩種語言沒有什么移植的必要,因為他們生成的代碼可以完全通用。但是如果一個工程基本上是VB寫成的,卻需要少許已經存在的C#過程,用組件并不是一種效率很高的辦法。就算是學習C#或VB,學會他們之間的移植可以雙倍的利用已經存在的代碼(如好玩的Donkey.net就只有VB版)。
有人比較過這兩種語言,得出的結論是他們很相似。但即便是這樣,VB初學者看到諸如((Button)sender).Text=“啟動”;之類的語法不知道如何移植到VB,而C#初學者看到Handles Button1.Click等語法也會為移植而感到頭痛。下面就看看他們最難移植的部分:
1、Option語句。VB的Option語句可以打開或關閉變量聲明檢查和類型轉換檢查。尤其是Option Strict被關閉后,VB變成弱類型語言,很多類型轉換都是自動的,移植到C#中會產生無數錯誤。因此,如果要將帶有Option Strict Off語句的VB程序移植到C#,最好先在VB中將Option Strict打開,然后把所有類型轉換出錯的地方變成強類型轉換,然后再進行移植。
2、類型轉換。VB提供了很多類型轉換函數型運算符,如CInt(),CSng(),CStr()等,在C#中只要用(int),(float),(String)即可。然而如果不是標準類型,如下面的C#語句:
((System.Button)sender).Text=“啟動”;
就要使用VB的函數型運算符CType來實現。上面的代碼正確的移植方法是:
CType(sender,System.Button).Text=“啟動”
千萬不要使用某些人推薦的,將Option Strict關閉,然后用后期綁定調用sender對象的方法,這根本不符合程序移植不能改變本質的要求。
3、修飾符和屬性標簽。VB和C#的修飾符是完全對等存在的,但是拼寫往往不同,給移植帶來了很多麻煩,尤其是表示相同意思的關鍵字從字面理解完全不同的時候。下面就給出了VB和C#對應的關鍵字:
VB
C#
VB
C#
Inherits
:
Implements
:
MustInherit
abstract
NotInheritable
sealed
Overridable
virtual
NotOverridable
sealed
MustOverride
abstract
Overrides
override
[Overloads]
無
Shadows
new
Shared
static
Public
public
Protected
protected
Friend
internal
Protected Friend
protected internal
Private
private
Static
用別的方法實現
ByVal
無
ByRef
ref
Optional
無
ParamArray
params
無法實現
unsafe
無法實現
fixed
可以看出,VB的關鍵字比較長,而且使用上也比C#更加嚴格。從C#向VB移植的時候,要分外注意哪些VB有而C#沒有的關鍵字以及在C#拼寫相同,在VB中拼寫不同的關鍵字(如MustOverride和MustInherit)。有些關鍵字如unsafe,如果C#使用了他們,將無法移植到VB中。好在這些關鍵字在商業應用中并不常用。
屬性標簽在這兩種語言中非常的相似,移植上應該沒有任何難度,只要知道在C#中用方括號[]表示屬性標簽,而在VB中用的是尖括號。另外,如果要用名稱結合傳遞參數,C#直接使用=號,而VB使用:=(冒號和等號)。
4、委派類型。委派類型就是安全的函數指針類型。在C#中,難以分辨是函數指針在工作還是函數本身在工作,因為他們的語法相同。當要為一個委派類型的變量復制的時候,直接等于一個函數即可,如:
public delegate void FuncType(Object e)
...
FuncType func;
func=new FuncType(this.SampleFunction1);
//調用
func(something);
//換指向另外一個函數
func=this.SampleFunction2
然而VB中,委派類型就像是一般的對象,有它的方法,與函數本身明顯不同。你不能將過程的名字直接賦給一個委派類型的對象,而必須使用AddressOf運算符,下面的例子就是上文C#程序的VB版,注意那些實現不同的地方:
Public Delegate Sub FuncType(ByVal eAs Object)
...
Dim func As FuncType
func=New FuncType(AddressOf Me.SampleFunc1)
‘調用
func.Invoke(something)
‘換指向另外一個函數
func=AddressOf Me.SampleFunction2
5、事件處理。這是兩種語言最大的差別之一,VB傳承以前版本強大的事件處理機制,許多語法都比C#更加靈活。好在無論什么情況,他們之間都是可以互相移植的。
對于事件定義,兩種語言都是一個委派類型加一個事件屬性,如:
[C#]
public delegate void MyEventHandler(Object sender,EventArgs e);
public event MyEventHandler MyEvent;
[Visual Basic]
Public Delegate Sub MyEventHandler(ByVal sender As Object,ByVal eAs EventArgs)
Public Event MyEvent As MyEventHandler
VB還支持另外一種更加緊湊的定義方法,只有一條語句:
Public Event MyEvent(ByVal sender As Object,ByVal eAs EventArgs)
移植的時候,要把參數部分分離出來,成為一個委派類型,再按照普通方法定義事件即可。
關于事件響應,C#與Delphi等語言一樣,是動態綁定事件過程的,其語法類似于下:
internal MyClass myobj;
...
myobj=new MyClass();
...
myobj.MyEvent+=this.myobj_MyEvent;
...
protected void myobj_MyEvent(Object sender,EventArgs e)
{
//語句
}
可以看到,C#是利用運算符連接事件過程和事件屬性的。之后,還可以用-=運算符解除事件過程與事件屬性的綁定。VB不支持運算符重載,但仍然支持這種動態綁定的事件過程,方法是使用AddHandler和RemoveHandler關鍵字。如上面黑體部分可以移植為:
AddHandler myobj.MyEvent,AddressOf Me.myobj_MyEvent
解除綁定的語法與此類似,只是關鍵字為RemoveHandler而已。一定不要忘記過程前面還有一個AddressOf關鍵字!
動態綁定的事件過程工作起來比較慢,VB支持一種更快的靜態綁定事件過程。一旦為對象設置了靜態的事件過程,就不能解除綁定,一般大多數情況都是如此。語法如下:
‘定義變量時使用WithEvents關鍵字
Friend WithEvents myobj As MyClass
‘直接書寫事件過程,注意Handles的語法:
Protected Sub myobj_MyEvent(ByVal sender As Object,ByVal eAs EventArgs)_
Handles myobj.MyEvent
‘語句
End Sub
它表示myobj_MyEvent這個過程僅僅響應myobj.MyEvent這個過程。如果一個過程要響應很多個事件,把他們列在Handles后面,用逗號隔開,如Handles Event1,Event2,...
遇到這種情況,要看清Handles后面的所有對象和事件,將它們一一改寫成動態綁定的語句:
Protected Sub XXX(...)Handles myobj1.MyEvent,myobj2.MyEvent
==
myobj1.MyEvent+=this.XXX;
myobj2.MyEvent+=this.XXX;
...
protected void XXX(...){}
當事件比較多時,C#顯著變得比較麻煩,幸好一個過程響應一大堆事件的情況也不太多(不過我就編寫過一個過程相應8個事件,移植起來好麻煩!)。原則上說,將靜態事件過程移植為動態事件過程并沒有完全遵守移植的規定,但我估計他們實現的原理不會相差太多,所以也不用擔心。
6、異常處理。VB支持兩種形式的異常,即.net框架的異常和VB自己的錯誤號碼。而C#只支持第一種。用到VB自己的錯誤號碼的程序幾乎無法移植到C#中,所以應該盡量使用.net框架的異常,如下面VB語句:
Try
‘發生錯誤的代碼
Catch When Err.Number=52
‘解決錯誤的代碼
End Try
這段代碼無法直接移植到C#中,只有用Exception對象取代Err對象獲得異常信息,才能順利移植。另外VB的When語句帶給Try語句十分靈活的用法,必須用很高的技巧才能在C#中實現,這就需要具體問題具體分析了。
VB支持Exit Try語句,可以直接從Try塊或Catch塊跳轉到Finally塊。C#沒有提供類似的語法,可以用以下技巧:
[Visual Basic]
Try
‘一些語句
Exit Try
Finally
‘一些語句
End Try
[C#]
try
{
//一些語句
goto__leave;
}
finally
{
//一些語句
}
__leave://別忘了這里還有哦!
總之是利用了finally塊無法跳過的特征,用goto語句模擬了Exit Try語句。
如果VB程序用的是VB特有的On Error GoTo語句實現的錯誤處理,問題就麻煩了。代碼可能在過程中上下跳躍,無法預料語句的執行方式。這種代碼理解起來就頭痛,更不要說移植了。總體來說,把所有語句統統轉移到try塊中,然后用catch一一處理錯誤。遇到要返回(Resume語句)的時候,只好Copy代碼了。反正不是一件容易的事情,慢慢改就是了。
7、模塊。VB支持模塊,C#不支持。但也沒有關系,只要在C#中制造一個abstract類,共享所有成員,就和模塊一樣了。當然不能像VB一樣直接訪問模塊中的成員,需要用到“類名.成員名”的用法。
8、接口。C#在接口方面也沒有VB強大(怎么這么重要的功能也不做得好一點?),VB采用Implements語句結合接口的成員和類的實現成員,而C#是用名稱結合。因此VB就可以隨便修改實現成員的訪問級別和名稱,而C#就不能改名稱。將C#移植為VB時,最好利用VB.net編輯器直接實現接口,比較簡單。把VB移植為C#時,就必須把改過的名字都改回來,遇到名字沖突就更討厭了(這時候我幾乎不想再移植為C#了)。給一個例子:
[Visual Basic]
Public Class Class1:Implements IMyInterface
Public Sub DoSth()Implements IMyInterface.Method1
End Sub
End Class
[C#]
public class Class1:IMyInterface
{
public void Method1()
{
}
}
9、運算符重載。這會遇到VB頭痛了,既然VB不支持運算符重載,那么就必須用子程序和函數來模擬運算符。比如建立Plus和Minus方法模擬+和-的運算。當然還是有很多情況(比如遇上了explicit和implicit語句)就真的沒有辦法了,只好不移植了。運算符重載是一個很不錯的功能,它能使很多操作簡單地完成,如果VB支持它,就真的是完美語言了。
1、vb.net ?完全符合面向對象的編程語言抽象、封裝、繼承的四大特性,而vb不支持繼承。
2、錯誤處理不同。
vb中只是On Error.....goto和On Errer Resume Next ,這些錯誤稱為非結構化異常處理。而在vb.net中采用的結構化異常處理機制,try...catch....finally控制。
3、兩者產生的窗體不同。
vb.net 允許創建不同類型的應用程序,例如,創建ASP.NET和ASP.NET Web 服務應用程序,還允許創建控制臺應用程序和作為桌面服務運行的應用程序。但是vb 只能創建Windows窗體。
4、數據庫訪問的差別。
vb6.0是通過ADO(Active X Data Objext)來實現對數據庫訪問。而vb.net 是通過ADO.NET來訪問數據庫。
擴展資料
Visual Basic(簡稱VB)是Microsoft公司開發的一種通用的基于對象的程序設計語言,為結構化的、模塊化的、面向對象的、包含協助開發環境的事件驅動為機制的可視化程序設計語言。是一種可用于微軟自家產品開發的語言。
“Visual” 指的是開發圖形用戶界面 (GUI) 的方法——不需編寫大量代碼去描述界面元素的外觀和位置,而只要把預先建立的對象add到屏幕上的一點即可。
“Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 語言,是一種在計算技術發展歷史上應用得最為廣泛的語言。
Visual Basic源自于BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(RAD)系統,可以輕易的使用DAO、RDO、ADO連接數據庫,或者輕松的創建Active?X控件,用于高效生成類型安全和面向對象的應用程序 。
參考資料:百度百科-Visual Basic
C#.net優點:
運算符重載。不安全代碼(指針和固定內存區)、?無符號整數、移位運算。
VB的優點:?
即時編譯、靜態事件綁定、條件異常捕獲、COM兼容類、寬松的類型檢查和變量聲明、Visual Basic Runtime庫、可選參數、帶參數屬性、模塊等語言特征、動態數組。
通過VB.NET開發好的程序絕對沒有問題(包括Direct X游戲開發)。雖然VB.NET的資料少,但是只要C#支持的VB.NET都支持(大體上這樣,因為都要經過MSIL中間環節。除了指針之類的VB.NET不支持C#支持,但是沒有多大實際用處)。
vb.net的資料以英文資料居多(只有英文資料才有看頭,中國的沒有什么好資料),得看看英文水平過不過關。還有VB.NET的ide也比C#的IDE好得多,代碼看得也舒服。(C#的大括號{}太煩人)。
至于VB6對C的幫助,只是理解上會容易一些,其它用處不大。有VB6的基礎學VBNET會方便一些,但是并不是會VB6就會VB.NET,它們差別也不小。
擴展資料:
NET、C#和ASP.NET之間的區別 :
1、NET是一個平臺,一個抽象的平臺的概念。
NET 平臺其本身實現的方式其實還是庫,抽象層面上來看是一個平臺。
基本可以理解的NET核心就是NETFramwork。
NETFramework包括兩個關鍵組成元素:
a. CommonLanguageRuntime,公共語言運行時(CLR0)-提供內在管理,代碼安全性檢測等功能。
b. NETFrameworkClassLibrary,.NET 框架類庫(FLC)-提供大量應用類庫,提高開發效率。
學習NET Framework 是所有.NET開發人員都必須的,否則開發NET程序永遠都是停留在‘外功’的招式,NETramework 是NET開發高手的‘內功’修行之一。
2、C#是一個程序設計語言,僅僅是一個語言。
程序設計語言僅僅是為了方便開發人員和計算機溝通的工具,雖然 C#語法相對 C 和?C+要多一些,但是相對來看 C#語法都比較固定,這樣使用起來卻都很容易。我認可一位朋友說的,C#的語法更嚴謹!
這里回過來看看NET和C#的關系,不得不提的是NET程序的執行過程。
C#符合NETCLR 中的公共語言運行規范。CLS:commonlanguagespecification,當然所有的NET Language 都是符合這個規范的例如:VB.NET、XAML 和 C++/CL等等。
C#需要符合NETCLS,是因為NETCLR和JAVA虛擬機類似,有一個中間語言共機器來執行。所有不同語言的.NET代碼在執行前會被編譯成同樣的中間語言(MSIL),所以所有NET 支持語言都必須符合符合CLS 規范。
P.S:如果做.NET3.0XAML開發的朋友,可以嘗試下ildasm.exe看看XAML的應用程序,會發現原來 XAML其實很簡單。
3、ASP.NET是一個網站開發的技術,僅僅是.NET框架中的一個應用模型。
用微軟公司ASP.NET快速入門中的一句話來解釋,ASP.NET是用于生成基于Web的應用程序的內容豐富的編程框架。
ASP.net 和C#的區別:
編寫asp.net通常包括兩部分的代碼:網頁層和后臺處理層,網頁就是用標記語言來寫的,而網頁對應的后臺處理程序則需要.net語言來完成,目前主要是采用c#和vb.net。
可以說整個的asp.net網站通過c#或者vb.net來實現。而c#則是ms .netframework的主要語言,可以用在網站,桌面應用等方面。可以算是一種比較流行的編程語言。
' 關于VB.net { Visual Basic.NET是基于微軟.NET Framework之上的面向對象的中間解釋性語言,可以看作是Visual Basic在.Net Framework平臺上的升級版本,增強了對面向對象的支持。但由于改動太大,導致VB.net對VB的向后兼容性不好,在業界引起不小的爭議。 } ' VB.net與VB6.0的主要區別 { VB.Net需要在.Net Framework平臺上才能執行,因此,大多的VB.Net程序員使用Visual Studio.Net作為IDE(integrated development environment-集成性的開發環境)開發.net應用程序。 VB6生成的應用程序不需要.Net Framework框架的支持。 因此,使用VB.net開發的應用程序只能在裝有.Net Framework框架的系統中運行。 } ' VB.net與VB6.0的編程思想 { 網上流傳的VB與VB.net差別被過分夸大。其實VB.net改善的只是完整的面向對象思想,90%語法與VB6.0保持一致。 抽象、封裝、多態、繼承是面向對象語言的四個基本屬性。VB6.0不支持繼承,而VB.NET則不然。所以,和C++一樣,VB.NET也是完全面向對象的編程語言。 } ' VB.net與VB6.0的應用前景(個人觀點 By 刺猬) ( 介于現在應用最為廣泛WindowsXP操作系統沒有預裝.net framework的原因,許多VB程序員采用VB6.0開發應用程序;但現在不一樣了,在未來,WindowsXP系統必將面臨淘汰。繼Vista以后,系統都預裝了.net framework框架,由此看來,微軟正在極力推崇使用.net技術。或許,.net應用程序的開發在未來會有很大的發展前景。 }
求采納
文章名稱:vb.net為什么這么像,vb與vbnet
當前鏈接:http://vcdvsql.cn/article28/hegpjp.html
成都網站建設公司_創新互聯,為您提供網站導航、網站內鏈、域名注冊、電子商務、網站營銷、做網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯