Share via


比較各種語言的關鍵字

本主題列出可用語言關鍵字做摘要的一般程式工作。 如需有關需要程式碼範例之工作的詳細資訊,請參閱比較各種語言的程式設計概念,含程式碼範例

用途

Visual Basic

C++

C#

F#

宣告變數

Dim

Public

Friend

Protected

Private

Shared

靜態1

宣告子 (這是觀念,而非關鍵字)

宣告子 (包括使用者定義型別與內建型別的關鍵字)

let 繫結

宣告具名常數

Const

const

const

readonly

let 繫結

建立類別的新執行個體

新增

new

gcnew

new

new

建立新的物件

新增

COM 物件的 CreateObject

CoCreateInstance() (COM 物件專用)

new 

new

設定物件變數的物件

=

=

=

<-

函式或方法不會傳回值

Sub2

void

void

單位類型

多載一個函式或方法 (Visual Basic:多載一個程序或方法)

Overloads

(此用途不需要語言關鍵字)

(此用途不需要語言關鍵字)

override

參考目前物件

Me3

this

this

按照方法成員中所述使用自我識別項

對目前物件的虛擬方法進行一個非虛擬呼叫

MyClass

MyClass::Func1(),其中 MyClass 是包含成員函式 Func1 的 C++ 類別。

不適用

不適用

從字串擷取字元

GetChar或 str(10) 的 str 是字串的位置。

*(p + 10) 或 p[10],其中 p 是 char* 或 wchar_t*

str[10],其中 str 是字串

string

str.Chars(10),其中 str 是字串

字串

宣告一個複合資料型別 (結構)

結構

類別

介面

class

struct

union

__interface

struct

class

介面

類別

初始化一個物件 (建構函式)

Sub New()4

建構函式 (這是觀念,而非關鍵字)

建構函式或系統預設型別建構函式

類別建構函式

建構函式

直接終止一個物件

不適用

~ClassName

不適用

不適用

在記憶體回收並重新宣告一個 object5 之前,由系統呼叫的方法

Finalize (在 Visual Basic 6.0 中為 Class_Terminate)

解構函式 (C++) (這是觀念,而非關鍵字)

解構函式

Finalize

確保 Unmanaged 資源在使用後會加以處置

Using

不適用

使用

資源管理

初始化所宣告的變數

Dim x As Long = 5

Dim c As New Car(FuelTypeEnum.Gas)

// 初始化一個值:

int x=5;

//配合適當的建構函式:

C c(10);

// 初始化一個值:

int x = 123;

// 或使用預設建構函式:

int x = new int();

let x = 123

使用函式的位址

AddressOf (本運算子會以委派執行個體的形式傳回函式的參考)

delegate

Delegate - 委派

功能

回呼

將一個函式的位址傳遞至另一個回呼啟動程式的函式。 如需範例,請參閱HOW TO:在 Visual Basic 中將程序傳遞至其他程序

CALLBACK (標準型別)

callback (IDL 屬性)

Delegate - 委派

不適用

宣告一個可以非同步修改的物件

不適用

volatile

volatile

不適用

強制變數的明確宣告

Option Explicit

不適用 (所有必須宣告變數前使用)

不適用 (所有必須宣告變數前使用)

不適用 (所有必須宣告變數前使用)

啟用區域型別推斷

Option Infer

型別推斷會自動啟用

測試一個不參考物件的物件變數

obj Is Nothing

pobj == NULL

obj == null

在比對運算式中使用選項類型

選項

比對運算式

一個不參考物件之物件變數的值

Nothing

nullptr

null

Null 值

測試一個資料庫 Null 運算式

IsDBNull

不適用

不適用

不適用

測試 Variant 變數是否已初始化

不適用

不適用

不適用

不適用

定義預設屬性

Default

property:property關鍵字來參考 Managed 程式碼

索引子

索引屬性

物件導向程式

用途

Visual Basic

C++

C#

F#

參考一個基底類別

MyBase

__super

base

base

宣告一個介面

介面

__interface

介面類別

介面

介面

指定一個要實作的介面

Implements

(從介面導出)

class C1 : public I1

class C1 : I1

介面

介面

宣告一個類別

類別

class

類別和結構 (管理)

class

type

宣告一個模組

模組

static class

static class

Module - 模組

宣告類別或結構的部分定義

Partial

不適用

Partial

沒有直接的對等用法。 請參閱 型別擴充 (F#)

指定一個只能被繼承的類別, 無法建立類別的執行個體

MustInherit

抽象 (Visual C++)6

abstract

抽象類別

指定一個不能被繼承的類別

NotInheritable

密封

sealed

SealedAttribute

宣告一個列舉型別

Enum

enum

enum

type

宣告一個類別常數

Const

const

const (套用到欄位宣告)

根據預設,值是不可變動的 (常數)。 請參閱 值 (F#)

從基底類別衍生一個類別

Class C1 Inherits C2

Class C1 : public Base (此用途不需要語言關鍵字)

class C1 : C2

class

繼承

覆寫方法或屬性 (Property)

Overrides

(此用途不需要語言關鍵字,除了 override 是用於 /clr 編譯之外 -- 請參閱在衍生的類別)

override

override

宣告一個在衍生類別時必須實作的方法

MustOverride

將 = 0 放在宣告的結尾 (純虛擬方法)

abstract

abstract

宣告一個無法覆寫的方法

NotOverridable (預設的方法為 NotOverridable)。

密封

sealed

使用 Sealed 屬性

宣告虛擬的方法或屬性,或是屬性存取子

Overridable

virtual

virtual

abstract,如方法中所述

在衍生類別中隱藏基底類別成員

遮蔽

新 (新介面槽 vtable 中)

new

不允許隱藏虛擬或抽象方法

宣告一個型別安全參考給類別方法

委派

delegate

Delegate - 委派

myObj.myFunction,其中 myObj 為物件,myMethod 為該物件上的可用方法

指定一個包含您要處理其事件之物件的變數

WithEvents

不適用

(寫入程式碼 - 沒有特定關鍵字)

不適用

指定一個要呼叫其事件程序的事件

Handles (命名程序仍然可將事件程序與 WithEvents 變數關聯)

不適用

event += eventHandler;

不適用

評估物件運算式一次,以便存取多個成員

With... End With

不適用

不適用

不適用

例外狀況處理

用途

Visual Basic

C++

C#

F#

例外狀況處理

Try... Catch... Finally... End Try

Throw

結構化例外狀況處理:__try, __except

__finally

C++ 例外狀況處理:

try、catch、throw

CLR 例外狀況處理:

在 /clr 之下所處理的例外狀況

try、catch、finally

throw

try

with

finally

決策結構

用途

Visual Basic

C++

C#

F#

決策結構 (選擇)

選取... Case... End Select

switch、case 和 default

goto

break

switch,case

預設

goto

break

比對運算式

決策結構 (if ... 然後)

If... Then... Else... End If

ElseIf

if、else

if、else

if...then...else

迴圈結構 (條件式)

While... End While

Do...Loop

do、while

continue

do

while

continue

while...do

迴圈結構 (反覆項目)

For... Next

For Each... Next

for

for

foreach

for...to

for...in

陣列

用途

Visual Basic

C++

C#

F#

宣告陣列

Dim a() As Long

int x[5];

int[] x = new int[5];

let x = [| 1; 2; 3; 4; 5 |]

陣列

初始化陣列

Dim a() As Long = {3, 4, 5}

int x[5]= {1,2,3,4,5};

int[] x = new int[5] {1, 2, 3, 4, 5};

let x = [| 1; 2; 3; 4; 5 |]

陣列

重新配置陣列

Redim

不適用

不適用

不適用

類別範圍

用途

Visual Basic

C++

C#

F#

在專案或組件之外式可見的

Public

public

public

public

只顯示在已宣告的組件內

Friend

private

internal

internal

只有在目前或衍生類別中可見

Protected

不適用

Protected

不適用

存取只限於目前的組件或衍生自包含類別的型別

Protected Friend

型別和成員的可視性

protected internal

存取範圍層次

不適用

只有在專案中可見 (對於巢狀類別而言,則是在封入類別)

Private

private

private

private

成員範圍

用途

Visual Basic

C++

C#

F#

在類別、專案和模組之外可存取

Public

public

public

public

在類別外以及專案或封包中可存取

Friend

public private

internal

internal

只有目前和衍生類別可存取

Protected

protected

protected

不適用

只有在類別或模組中可存取

Private

private

private

private

指定能存取宣告類別之 Private 成員的函式或其他類別

不適用

friend

不適用

不適用

在組件和私用之內對組件進行保護

不適用

protected private

不適用

不適用

存取只限於目前的組件或衍生自包含類別的型別

Protected Friend

型別和成員的可視性

protected internal

存取範圍層次

不適用

其他存留期

用途

Visual Basic

C++

C#

F#

保留程序的區域變數

靜態7

static

static

不適用

讓類別的執行個體共用

Shared

static

static

static

其他

用途

Visual Basic

C++

C#

F#

註解程式碼

'

Rem

//, /* */ 多行註解

//, /* */ 多行註解

/// XML 註解

//, (* *) 多行註解

是否區分大小寫?

呼叫 Windows API

Declare <API>

不適用

使用 Platform Invoke

使用平台叫用。

請參閱 外部函式 (F#)

宣告並引發一個事件

事件

RaiseEvent

不適用

事件

事件

基本執行緒

SyncLock

不適用

鎖定

鎖定

到 (分支)

Goto

goto

goto

不適用

1 在 Visual Basic 中,唯一可以用 Static 本身來宣告變數 (例如 Static x As Long) 的地方,是在程序之內。

2 在 Visual Basic 中,以 Sub 關鍵字宣告的程序不能傳回值。 如果要程序傳回值,您必須使用 Function 關鍵字來宣告。

3 在 Visual Basic 中,Me 不會在編譯時期解析,因此您可以將它當做屬性或方法的傳回值使用。

4 在 Visual Basic 中,衍生自 .NET Framework System.Object 之類別的建構函式永遠都會稱為 New。

5 一般來說,以這種方式撰寫的程式碼,將釋放記憶體回收行程不會自動釋放的系統資源。

6 在 C++ 中,抽象類別至少包括一個純虛擬成員。

7 在 Visual Basic 中,非共用類別方法的靜態區域變數會儲存在每個類別執行個體中,而非與其他語言一樣共用單一複本。 當 Static 是用來宣告變數時,即使變數遺失並重新取得範圍後,仍會保留變數的值。

請參閱

參考

比較各種語言的程式設計概念,含程式碼範例

比較各種語言的運算子

比較各種語言的資料型別

比較各種語言和程式庫的控制項與可以透過程式設計的物件

其他資源

語言對等用法