首先聲明,此處僅作語言方面的對比,在.NET生產力上,兩者沒有區別。進行這個對比是為了澄清對Visual Basic和C#功能錯誤的認識和流言。以下所有區別都是經過較為深刻的研究得出的,相比一些常見的對比來講更有科學性。
下面先對比Visual Studio .NET 2003中,兩種語言功能的對比。*表示對方語言中沒有這項功能,但是可以用別的語法在IL級別實現完全同樣的功能。注意,本次比較只選擇有意義的功能,某些功能,如循環、分支語句等傳統功能不在比較之列。同時,VB因兼容老版本而遺留的,不具有現代語言特征的語法也不在比較之列(如On Error語句,Option Explicit語句等)。
Visual Basic有而C#沒有的功能
C#有而Visual Basic沒有的功能
局部static變量*
WithEvents和Handles語法*
可選參數
按名傳遞
屬性參數
按非虛方式訪問一個虛函數
換名實現接口
後期綁定
With語句*
用Imports導入靜態成員
模塊
Is操作符*
Try…Catch When語句
Visual Basic運行時庫的功能和函數
運算符重載
為event指定add與remove訪問器
using語句*
XML注釋文檔
不安全代碼和指針
as