.NET 框架的最大優勢在於語言互通性。VB.NET 編譯產生的受控代碼能與 C#、F# 等語言編寫的組件無縫交互。這意味著你可以在 VB.NET 中定義基類,然後在 C# 專案中繼承它,反之亦然。這種「交叉語言繼承」不需要特殊配置,只需遵循標準的組件引用流程即可。
在 Visual Studio 中建立名為 vblib 的類別庫專案,加入 Parent 類別:
Public Class Parent
Public Sub DoSomething()
MsgBox("Parent DoSomething", MsgBoxStyle.Information, "Parent")
End Sub
End Class
新增 C# 類別庫專案 cslib,透過「專案 → 加入參考」引用 vblib。然後定義繼承自 Parent 的子類別:
namespace cslib
{
using System.Windows.Forms;
using vblib;
public class CsClass : Parent
{
public CsClass()
{
MessageBox.Show("CsClass constructor");
}
}
}
| 特性 | VB.NET | C# |
|---|---|---|
| 命名空間 | 隱含或 Namespace ... End Namespace | 顯式 namespace |
| 引入命名空間 | Imports | using |
| 繼承語法 | Inherits BaseClass | class Derived : Base |
| 建構函式 | Sub New() | public ClassName() |
| 區塊結構 | Sub ... End Sub | { ... } |
| 陳述式結尾 | 換行 | 分號 ; |
新增 VB.NET Windows Forms 專案,引用 cslib,在按鈕點擊事件中實例化 C# 類別並呼叫繼承自 VB.NET 的方法:
Protected Sub Button1_Click(sender As Object, e As EventArgs)
Dim obj As New cslib.CsClass()
obj.DoSomething()
End Sub
執行程式並點擊按鈕,會依序彈出兩個對話框:第一個顯示 C# 建構函式訊息,第二個顯示 VB.NET 基類的 DoSomething 方法訊息,證明跨語言繼承運作正常。
MyClass、C# 的 yield)