Share via


Vergleich der Schlüsselwörter in verschiedenen Sprachen

In diesem Thema werden allgemeine Programmieraufgaben aufgeführt, die mit einem Sprachschlüsselwort zusammengefasst werden können. Weitere Informationen zu Aufgaben, für die Codebeispiele benötigt werden, finden Sie unter Vergleich der Programmierkonzepte verschiedener Sprachen anhand von Codebeispielen.

Zweck

Visual Basic

C++

C#

F#

Deklarieren einer Variablen

Dim

Öffentlich

Friend

Protected

Private

Shared

Static1

Deklaratoren (Konzept, kein Schlüsselwort)

Deklaratoren (Schlüsselwörter beinhalten benutzerdefinierte und integrierte Typen)

let-Bindungen

Werte

Deklarieren einer benannten Konstante

Const

const

const

readonly

let-Bindungen

Werte

Erstellen einer neuen Instanz einer Klasse

Neu

new

gcnew

new

new

Erstellen eines neuen Objekts

Neu

CreateObject für COM-Objekte

CoCreateInstance() (für COM-Objekte)

new 

new

Zuweisen eines Objekts zu einer Objektvariablen

=

=

=

<-

Die Funktion/Methode gibt keinen Wert zurück

Sub2

void

void

Einheitentyp

Überladen einer Funktion oder Methode (bei Visual Basic: Überladen einer Prozedur oder Methode)

Overloads

(Zu diesem Zweck ist kein Sprachschlüsselwort erforderlich.)

(Zu diesem Zweck ist kein Sprachschlüsselwort erforderlich.)

override

Verweis auf das aktuelle Objekt

Me3

this

this

Verwenden Sie den Selbstbezeichner, wie unter Methoden oder Member beschrieben

Nichtvirtueller Aufruf einer virtuellen Methode des aktuellen Objekts

MyClass

MyClass::Func1(), wobei MyClass eine C+-Klasse mit einer Memberfunktion Func1 ist.

Nicht zutreffend

Nicht zutreffend

Zeichen aus einer Zeichenfolge abrufen

GetChar

*(p + 10) oder p[10], wobei p char* oder wchar_t* entspricht

str[10], wobei str einer Zeichenfolge entspricht

string

str.Chars(10), wobei str einer Zeichenfolge entspricht

Zeichenfolgen

Deklarieren eines Verbunddatentyps (Struktur)

Struktur

Klasse

Interface

class

Struktur

union

__interface

Struktur

class

interface

Klassen

Initialisieren eines Objekts (Konstruktor)

Sub New()4

Konstruktoren (Konzept, kein Schlüsselwort)

Konstruktoren oder Systemstandardtyp-Konstruktoren

Klassenkonstruktoren

Konstruktoren

Ein Objekt direkt abbrechen

Nicht zutreffend

~ClassName

Nicht zutreffend

Nicht zutreffend

Durch das System aufgerufene Methode unmittelbar bevor ein Objekt von der Garbage Collection5 zurückgefordert wird

Finalize (Class_Terminate in Visual Basic 6.0)

Destructors (C++) (Konzept, kein Schlüsselwort)

Destruktoren

Finalize

Garantie, dass nicht verwaltete Ressourcen nach Verwendung verworfen werden

Using

Nicht zutreffend

using

Ressourcenverwaltung

Initialisieren einer Variablen, wo sie deklariert ist

Dim x As Long = 5

Dim c As New Car(FuelTypeEnum.Gas)

// Initialisieren durch Wertzuweisung :

int x=5;

//mit einem geeigneten Konstruktor:

C c(10);

// Initialisieren durch Wertzuweisung :

int x = 123;

// oder verwenden eines Standardkonstruktors:

int x = new int();

let x = 123

Adresse einer Funktion übernehmen

AddressOf (Dieser Operator gibt einen Verweis auf eine Funktion in Form einer Delegatinstanz zurück)

delegate

Delegat

Funktionen

Rückruf

Übergeben Sie die Adresse einer Funktion an eine andere, die die aufrufende Instanz zurückruft. Ein Beispiel finden Sie unter Gewusst wie: Übergeben von Prozeduren an eine andere Prozedur in Visual Basic.

CALLBACK (ein Standardtyp)

callback (IDL-Attribut)

Delegat

Nicht zutreffend

Deklarieren, dass ein Objekt asynchron veränderbar ist

Nicht zutreffend

volatile

volatile

Nicht zutreffend

Die explizite Deklaration von Variablen erzwingen

Option Explicit

Nicht verfügbar (Alle Variablen müssen vor ihrer Verwendung deklariert werden.)

Nicht verfügbar (Alle Variablen müssen vor ihrer Verwendung deklariert werden.)

Nicht verfügbar (Alle Variablen müssen vor ihrer Verwendung deklariert werden.)

Lokalen Typrückschluss aktivieren

Option Infer

Der Typrückschluss ist automatisch aktiviert

Überprüfen auf eine Objektvariable, die nicht auf ein Objekt verweist

obj Is Nothing

pobj == NULL

obj == null

Verwenden eines Optionstyps in einem Vergleichsausdruck

Option

Übereinstimmung mit Ausdrücken

Wert einer Objektvariablen, die nicht auf ein Objekt verweist

Nothing

nullptr

null

NULL-Werte

Überprüfen auf NULL-Ausdruck einer Datenbank

IsDBNull

Nicht zutreffend

Nicht zutreffend

Nicht zutreffend

Überprüfen, ob eine Varianten-Variable initialisiert wurde

Nicht zutreffend

Nicht zutreffend

Nicht zutreffend

Nicht zutreffend

Definieren einer Standardeigenschaft

Default

property: das property Schlüsselwort verweist auf verwalteten Code

Indexer

Indizierte Eigenschaften

Objektorientierte Programmierung

Zweck

Visual Basic

C++

C#

F#

Verweis auf eine Basisklasse

MyBase

__super

base

base

Deklarieren einer Schnittstelle.

Interface

__interface

interface class

interface

interface

Angabe einer zu implementierenden Schnittstelle

Implements

(Nur von der Schnittstelle ableiten)

class C1 : public I1

class C1 : I1

Schnittstellen

interface

Deklarieren einer Klasse

Klasse

class

Classes and Structs (Managed)

class

type

Deklarieren eines Moduls

Modul

static class

static class

Modul

Deklarieren einer partiellen Definition einer Klasse oder Struktur

Partial

Nicht zutreffend

Partial

Keine direkte Entsprechung. Weitere Informationen finden Sie unter Typerweiterungen (F#).

Festlegen, dass eine Klasse nur vererbt werden kann. Es kann keine Instanz dieser Klasse erstellt werden.

MustInherit

abstract (Visual C++)6

abstract

Abstrakte Klassen

Festlegen, dass eine Klasse nicht vererbt werden kann.

NotInheritable

sealed

sealed

SealedAttribute

Deklarieren eines Enumerationstyps

Enum

enum

enum

type

Deklarieren einer Klassenkonstanten

Const

const

const (wird bei einer Felddeklaration angewendet)

Werte sind standardmäßig unveränderlich (konstant). Weitere Informationen finden Sie unter Werte (F#).

Ableiten einer Klasse von einer Basisklasse

Class C1 Inherits C2

Class C1 : public Base (Zu diesem Zweck ist kein Sprachschlüsselwort erforderlich)

class C1 : C2

class

inherit

Überschreiben einer Methode oder Eigenschaft

Overrides

(Zu diesem Zweck ist kein Sprachschüsselwort erforderlich, außer bei override für Kompilierungen mit /clr, siehe Derived Classes)

override

override

Deklarieren einer Methode, die in eine abgeleitete Klasse implementiert werden muss

MustOverride

Setzen Sie = 0 an das Ende der Deklaration (rein virtuelle Methode)

abstract

abstract

Deklarieren einer Methode, die nicht überschrieben werden kann

NotOverridable (Methoden sind standardmäßig NotOverridable.)

sealed

sealed

Verwenden Sie das Sealed-Attribut.

Deklarieren einer virtuellen Methode oder Eigenschaft bzw. eines Eigenschaftenaccessors

Overridable

virtual

virtual

abstract, wie in Methods beschrieben.

Verbergen eines Basis­klassen­members in einer abgeleiteten Klasse

Shadowing

new (new slot in vtable)

new

Eine virtuelle oder abstrakte Methode auszublenden, ist nicht erlaubt.

Deklarieren eines typsicheren Verweises zu einer Klassenmethode

Delegat

delegate

Delegat

myObj.myFunction, wobei myObj ein Objekt ist, und myMethod ist eine Methode, die für dieses Objekt verfügbar ist.

Festlegen, dass eine Variable ein Objekt enthalten kann, dessen Ereignisse verarbeitet werden sollen

WithEvents

Nicht zutreffend

(Code schreiben – kein angegebenes Schlüsselwort)

Nicht zutreffend

Ereignisse angeben, für die eine Ereignisprozedur aufgerufen werden soll

Handles (Ereignisprozeduren können einer WithEvents-Variablen weiterhin nach Namensmustern zugewiesen werden)

Nicht zutreffend

event + = eventHandler;

Nicht zutreffend

Einmalige Auswertung eines Objektausdrucks für den Zugriff auf verschiedene Member

With... End With

Nicht zutreffend

Nicht zutreffend

Nicht zutreffend

Ausnahmebehandlung

Zweck

Visual Basic

C++

C#

F#

Ausnahmebehandlung

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

Throw

Strukturierte Ausnahmebehandlung:__try, __except

__finally

C++-Ausnahmebehandlung:

try, catch, throw

CLR-Ausnahmebehandlung:

Exception Handling under /clr

try, catch, finally

throw

try

ersetzen durch

finally

Entscheidungsstrukturen

Zweck

Visual Basic

C++

C#

F#

Entscheidungsstruktur (Auswahl)

Select... Case... End Select

switch, case, default

goto

break

switch, case

default

goto

break

Übereinstimmung mit Ausdrücken

Entscheidungsstruktur (if ....) anschließend)

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

ElseIf

if, else

if, else

if...then...else

Schleifenstruktur (bedingt)

While... End While

Do...Loop

do, while

continue

do

while

continue

while...do

Schleifenstruktur (Iteration)

For... Next

For Each... Next

for

for

foreach

for...to

for...in

Arrays

Zweck

Visual Basic

C++

C#

F#

Deklarieren eines Arrays

Dim a() As Long

int x[5];

int[] x = new int[5];

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

Arrays

Initialisieren eines Arrays

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 |]

Arrays

Array neu zuordnen

Redim

Nicht zutreffend

Nicht zutreffend

Nicht zutreffend

Gültigkeitsbereich der Klasse

Zweck

Visual Basic

C++

C#

F#

Sichtbar außerhalb des Projekts oder der Assembly

Öffentlich

public

public

public

Nur innerhalb der Klasse sichtbar, in der er deklariert wurde

Friend

private

internal

internal

Nur innerhalb aktueller oder abgeleiteter Klassen sichtbar.

Protected

Nicht zutreffend

Protected

Nicht zutreffend

Der Zugriff ist auf die aktuelle Assembly oder die von der enthaltenden Klasse abgeleiteten Typen begrenzt.

Protected Friend

Type and Member Visibility

protected internal

Zugriffsebenen

Nicht zutreffend

Nur innerhalb des Projekts sichtbar (bei geschachtelten Klassen innerhalb der einschließenden Klasse)

Private

private

private

private

Memberbereich

Zweck

Visual Basic

C++

C#

F#

Zugriff außerhalb von Klassen, Projekten und Modulen möglich.

Öffentlich

public

public

public

Zugriff außerhalb der Klasse, aber innerhalb des Projekts oder Pakets möglich.

Friend

public private

internal

internal

Zugriff nur auf aktuelle und abgeleitete Klassen möglich.

Protected

protected

protected

Nicht zutreffend

Zugriff nur innerhalb von Klassen oder Modulen möglich.

Private

private

private

private

Festlegen, dass eine Funktion oder eine andere Klasse Zugriff auf private Member der deklarierenden Klasse hat

Nicht zutreffend

friend

Nicht zutreffend

Nicht zutreffend

Geschützt innerhalb der Assembly und privat für andere Assemblys

Nicht zutreffend

protected private

Nicht zutreffend

Nicht zutreffend

Der Zugriff ist auf die aktuelle Assembly oder die von der enthaltenden Klasse abgeleiteten Typen begrenzt.

Protected Friend

Type and Member Visibility

protected internal

Zugriffsebenen

Nicht zutreffend

Allgemeine Lebensdauer

Zweck

Visual Basic

C++

C#

F#

Beibehalten der lokalen Variablen der Prozedur

Static7

static

static

Nicht zutreffend

Gemeinsamer Zugriff durch alle Instanzen einer Klasse

Shared

static

static

static

Sonstiges

Zweck

Visual Basic

C++

C#

F#

Kommentar-Code

'

Rem

//, /* */ für mehrzeilige Kommentare

//, /* */ für mehrzeilige Kommentare

/// für XML-Kommentare

//, (* *) für mehrzeilige Kommentare

Unterscheidung nach Groß-/Kleinschreibung?

nein

Yes

Yes

Yes

Aufruf von Windows-API

Declare <API>

Nicht zutreffend

Plattformaufruf verwenden

Verwenden Sie "Plattformaufruf".

Weitere Informationen finden Sie unter Externe Funktionen (F#).

Deklarieren und Auslösen eines Ereignisses

Event

RaiseEvent

Nicht zutreffend

event

Ereignisse

Threading primitives

SyncLock

Nicht zutreffend

lock

lock

Go to (Verzweigung)

Goto

goto

goto

Nicht zutreffend

1 In Visual Basic kann Static alleine nur innerhalb einer Prozedur zum Deklarieren einer Variablen, z. B. Static x As Long, verwendet werden.

2 In Visual Basic können Prozeduren, die mit dem Schlüsselwort Sub deklariert wurden, keine Werte zurückgeben. Bevor eine Prozedur einen Wert zurückgibt, muss sie mit dem Function-Schlüsselwort deklariert werden.

3 In Visual Basic wird Me zur Kompilierungszeit nicht aufgelöst. Dadurch kann es als Rückgabewert einer Eigenschaft oder Methode verwendet werden.

4 in Visual Basic werden Konstruktoren für die von .NET Framework System.Object abgeleiteten Klassen immer mit New benannt.

5 Normalerweise gibt der Code in einer solchen Methode Systemressourcen frei, die nicht automatisch durch Garbage Collector freigegeben werden.

6 In C++ beinhaltet eine abstrakte Klasse mindestens einen reinen virtuellen Member.

7 In Visual Basic werden statische lokale Variablen nicht freigegebener Klassenmethoden pro Klasseninstanz gespeichert und nicht wie in anderen Programmiersprachen als einzelne Kopie gemeinsam genutzt. Wird Static zum Deklarieren einer Variablen verwendet, wird der Wert dieser Variablen auch dann beibehalten, wenn der Gültigkeitsbereich der Variablen eingeschränkt und wieder erweitert wird.

Siehe auch

Referenz

Vergleich der Programmierkonzepte verschiedener Sprachen anhand von Codebeispielen

Operatorenvergleich in verschiedenen Sprachen

In verschiedenen Sprachen verglichene Datentypen

In zahlreichen Sprachen und Bibliotheken verglichene Steuerelemente und programmierbare Objekte

Weitere Ressourcen

Entsprechungen in verschiedenen Sprachen