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#和Java有許多相近之處的原因。 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框架下的基礎類別。因此大多數用其中一個語言寫的程式可以用語法轉換程式轉換為另一種語言,只有少數例外,而已有許多開源軟體及商業軟體有這類的功能。 语言特性从技术角度来看,C#和VB.NET之间的大部分差异都是语法糖。也就是说,大多数特性都存在于两种语言,但有些任务在一种语言中比另一种语言更容易完成。 存在于Visual Basic .NET但不存在于C#的特性
存在于C#但不存在于Visual Basic .NET的特性
存在于Visual Basic .NET但无法应用到C#的特性
Dim i As Integer = "1" '编译器插入一个从String到Integer的转换方法
Dim j As String = 1 '编译器插入一个从Integer到String的转换方法
If i = j Then '编译器插入一个从String到double的转换方法
MsgBox("Avoid using, but this message will appear!")
End If
为了向后兼容,
存在于C#但无法应用到Visual Basic .NET的特性
兩種語言的HelloWorld以下是兩種語言的HelloWorld: VB.NET Imports System
Module HelloWorldApp
' VB.NET Console 主程序
Sub Main()
' 輸出 Hello World! 至 Console
Console.WriteLine("Hello World!")
' ReadKey 用來暫停避免直接關閉 Console 視窗
Console.ReadKey()
End Sub
End Module
C# using System;
namespace HelloWorldApp
{
class Program
{
// C# Console 主程序
static void Main(string[] args)
{
// 輸出 Hello World! 至 Console
Console.WriteLine("Hello World");
// ReadKey 用來暫停避免直接關閉 Console 視窗
Console.ReadKey();
}
}
}
相關條目
|
Portal di Ensiklopedia Dunia