首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> C# 入門

VB.NET vs C# 功能對照表(Visual Studio .NET 2003 版)

     編輯:C# 入門

前言

針對 VS.NET 2003 兩大主流語言,整理**有意義的功能差異**。* 標記者:對方語言雖無直接語法,但可在 IL 層面實現相同功能。不列傳統迴圈/分支、VB 相容舊語法(On Error、Option Explicit 等)。

核心差異對照

VB.NET 獨有C# 獨有
區域 Static 變數 *運算子多載
WithEvents / Handles 事件語法 *為 event 指定 add/remove 存取器
選擇性參數using 陳述式 *
依名稱傳遞引數XML 文件註解
屬性參數Unsafe 程式碼與指標
以非虛擬方式呼叫虛擬函式as / is 運算子 *
重新命名實作介面匿名方法 (C# 2.0+)
晚期繫結迭代器 (yield return)
With 陳述式 *部分類型 (partial class)
Imports 匯入靜態成員可為 null 的實值型別 (int?)
模組靜態類別 (static class)
Try...Catch...When 篩選預設介面方法 (C# 8.0+)
VB 執行階段函式庫

關鍵差異深度解析

1. 事件綁定:WithEvents/Handles vs +=/-=

' VB.NET
Private WithEvents btn As Button
Private Sub btn_Click(...) Handles btn.Click ... End Sub

// C#
btn.Click += Btn_Click;
btn.Click -= Btn_Click;

VB 編譯器自動處理訂閱/取消訂閱,C# 需手動管理,但 C# 更靈活(可動態增減、Lambda)。

2. 選擇性參數

' VB.NET
Sub Foo(Optional x As Int32 = 0) ... End Sub

// C# 4.0 前無直接語法,需多載或用 DefaultParameterValueAttribute
void Foo(int x = 0) ... // C# 4.0+

3. 運算子多載

C# 支援 operator + 等,VB.NET 需定義共用 Operator 函式(語法較冗長)。

4. XML 文件註解

C# 原生 /// 產出 XML 文件,VB.NET 需手寫或用外掛工具。

5. Unsafe 與指標

C# 允許 unsafe 區塊直接操作記憶體,VB.NET 完全禁止(需 P/Invoke)。

選擇建議

  • 團隊有 VB6 基因 → VB.NET 轉型平滑,WithEvents、選擇性參數提升產能
  • 追求效能、互通性、現代語言特性 → C# 更優(指標、Unsafe、運算子多載、XML Doc、yield)
  • IL 層面無差別:兩語言編譯為相同 IL,執行效能等價

結語

語言是工具,沒有絕對優劣。理解差異、發揮各自優勢、避開陷阱,才是專業開發者的態度。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved