C#与Visual Basic .NET的比较

维基百科,自由的百科全书
跳转至: 导航搜索

C#VB.NET微軟公司開發的.NET框架中,两种面向对象编程语言,分別衍生自C++語言Visual Basic,因此在語法,註解方式都有許多的差異。

語言歷史[编辑]

C#和VB.NET各自有其不同的歷史,在語法上也有很大的差異。C#語法的基礎是衍生自1970年代丹尼斯·里奇貝爾實驗室(AT&T)發展的C語言[1],其中也包括了完全物件導向的C++,許多Java語言語法的基礎也是來自C++語言[2],這也是C#和jJava有許多相近之處的原因。

VB.NET是來自1960年代的BASIC語言,是「Beginner's All-purpose Symbolic Instruction Code」的縮寫,一開始BASIC在學校中教授,而且如它的名字所述的,被視為是一個基礎的程式語言。1970年代微電腦的製造商將BASIC用來做電腦系統的程式語言,以及有簡單輸入輸出控制的半作業系統。1980年代微軟也開始使用將一此語言,1990年代發展為Visual basic,用在window系統的快速應用程式開發[3],Visual basic打敗了當時像PowerBuilder等快速應用程式開發工具[4]。雖然Visual Basic如此的成功,但在2000年代初期微軟提出.NET框架及對應的Visual Studio開發平台,而Visual Basic也在第六版(VB6)畫下句點。

語言比較[编辑]

雖然C#和VB.NET在語法上有相當的不同,但因為都是微軟開發的.NET框架下的程式語言,而且是由同一個開發團隊進行開發、管理及維護,因此會有不少的共通點[5]。C#和VB.NET會編譯為同一種中介語言,在同一種.NET框架下的執行期函式庫下執行[6]。C#和VB.NET在語言結構上有一些差異,差異主要都是語法上的差異,但不要使用微軟提供,方便和VB6轉換的相容性函式庫,幾乎每一個VB.NET中的指令都有對應的C#的指令,反之亦然。為了延伸其機能,兩種語言也參考同一個.NET框架下的基礎類別。因此大多數用其中一個語言寫的程式可以用語法轉換程式轉換為另一種語言,只有少數例外,而已有許多開源軟體及商業軟體有這類的功能。

兩種語言的HelloWorld[编辑]

以下是兩種語言的HelloWorld

VB.NET

'non-console example:
Class Form1
    Public Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load()
        MsgBox("Hello, world!")
    End Sub
End Class

C#

class HelloWorldApp
{
     [DllImport("user32.dll")]
     static extern MessageBox(string title, string message);
     public static void Main()
     {
          MessageBox(null, "Hello, world!");
     }
}

相關條目[编辑]

  1. ^ Chistory. Cm.bell-labs.com. [2013-08-18]. 
  2. ^ History of Java programming language. www.freejavaguide.com. [2013-08-18]. 
  3. ^ The Birth of Visual Basic. Forestmoon.com. [2013-08-18]. 
  4. ^ Powersoft History PowerBuilder History. Lannigan.org. [2013-08-18]. 
  5. ^ Krill, Paul. Microsoft converging programming languages | Developer World. InfoWorld. 2009-02-27 [2013-08-18]. 
  6. ^ Microsoft Intermediate Language. Dotnet-guide.com. [2013-08-18].