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 |
Deklaratoren (Konzept, kein Schlüsselwort) |
Deklaratoren (Schlüsselwörter beinhalten benutzerdefinierte und integrierte Typen) |
||
Deklarieren einer benannten Konstante |
||||
Erstellen einer neuen Instanz einer Klasse |
new |
|||
Erstellen eines neuen Objekts |
CreateObject für COM-Objekte |
CoCreateInstance() (für COM-Objekte) |
new |
|
Zuweisen eines Objekts zu einer Objektvariablen |
= |
= |
<- |
|
Die Funktion/Methode gibt keinen Wert zurück |
Sub2 |
|||
Überladen einer Funktion oder Methode (bei Visual Basic: Überladen einer Prozedur oder Methode) |
(Zu diesem Zweck ist kein Sprachschlüsselwort erforderlich.) |
(Zu diesem Zweck ist kein Sprachschlüsselwort erforderlich.) |
||
Verweis auf das aktuelle Objekt |
Me3 |
Verwenden Sie den Selbstbezeichner, wie unter Methoden oder Member beschrieben |
||
Nichtvirtueller Aufruf einer virtuellen Methode des aktuellen Objekts |
MyClass::Func1(), wobei MyClass eine C+-Klasse mit einer Memberfunktion Func1 ist. |
Nicht zutreffend |
Nicht zutreffend |
|
Zeichen aus einer Zeichenfolge abrufen |
GetChar oder str(10), wo str eine Zeichenfolge ist |
*(p + 10) oder p[10], wobei p char* oder wchar_t* entspricht |
str[10], wobei str einer Zeichenfolge entspricht |
str.Chars(10), wobei str einer Zeichenfolge entspricht |
Deklarieren eines Verbunddatentyps (Struktur) |
||||
Initialisieren eines Objekts (Konstruktor) |
Konstruktoren (Konzept, kein Schlüsselwort) |
Konstruktoren oder Systemstandardtyp-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) |
Destruktoren (C++) (Konzept, kein Schlüsselwort) |
||
Garantie, dass nicht verwaltete Ressourcen nach Verwendung verworfen werden |
Nicht zutreffend |
|||
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) |
|||
Rückruf |
Übergeben Sie die Adresse einer Funktion an eine andere, die die aufrufende Instanz zurückruft.Ein entsprechendes Beispiel finden Sie unter Gewusst wie: Übergeben von Prozeduren an eine andere Prozedur in Visual Basic. |
CALLBACK (ein Standardtyp) callback (IDL-Attribut) |
Nicht zutreffend |
|
Deklarieren, dass ein Objekt asynchron veränderbar ist |
Nicht zutreffend |
Nicht zutreffend |
||
Die explizite Deklaration von Variablen erzwingen |
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 |
Der Typrückschluss ist automatisch aktiviert |
|||
Überprüfen auf eine Objektvariable, die nicht auf ein Objekt verweist |
pobj == NULL |
obj == null |
Verwenden eines Optionstyps in einem Vergleichsausdruck |
|
Wert einer Objektvariablen, die nicht auf ein Objekt verweist |
nullptr |
|||
Überprüfen auf NULL-Ausdruck einer Datenbank |
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 |
property:property das Schlüsselwort verweist auf verwalteten Code an |
Objektorientierte Programmierung
Zweck |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Verweis auf eine Basisklasse |
||||
Deklarieren einer Schnittstelle. |
||||
Angabe einer zu implementierenden Schnittstelle |
(Nur von der Schnittstelle ableiten) class C1 : public I1 |
class C1 : I1 Schnittstellen |
||
Deklarieren einer Klasse |
||||
Deklarieren eines Moduls |
static class |
static class |
||
Deklarieren einer partiellen Definition einer Klasse oder Struktur |
Nicht zutreffend |
Keine direkte Entsprechung.Siehe Typerweiterungen (F#). |
||
Festlegen, dass eine Klasse nur vererbt werden kann.Es kann keine Instanz dieser Klasse erstellt werden. |
||||
Festlegen, dass eine Klasse nicht vererbt werden kann. |
||||
Deklarieren eines Enumerationstyps |
||||
Deklarieren einer Klassenkonstanten |
const (wird bei einer Felddeklaration angewendet) |
Werte sind standardmäßig unveränderlich (konstant).Siehe Werte (F#). |
||
Ableiten einer Klasse von einer Basisklasse |
Class C1 : public Base (Zu diesem Zweck ist kein Sprachschlüsselwort erforderlich) |
class C1 : C2 |
||
Überschreiben einer Methode oder Eigenschaft |
(Zu diesem Zweck ist kein Sprachschüsselwort erforderlich, außer bei override (Komponentenerweiterungen für C++) für Kompilierungen mit /clr, siehe Abgeleitete Klassen) |
|||
Deklarieren einer Methode, die in eine abgeleitete Klasse implementiert werden muss |
Setzen Sie = 0 an das Ende der Deklaration (rein virtuelle Methode) |
|||
Deklarieren einer Methode, die nicht überschrieben werden kann |
NotOverridable (Methoden sind standardmäßig NotOverridable.) |
Verwenden Sie das Sealed-Attribut. |
||
Deklarieren einer virtuellen Methode oder Eigenschaft bzw. eines Eigenschaftenaccessors |
abstract, wie in Methods beschrieben. |
|||
Verbergen eines Basisklassenmembers in einer abgeleiteten Klasse |
new (neuer Slot in vtable) (Komponentenerweiterungen für C++) |
Eine virtuelle oder abstrakte Methode auszublenden, ist nicht erlaubt. |
||
Deklarieren eines typsicheren Verweises zu einer Klassenmethode |
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 |
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 |
Nicht zutreffend |
Nicht zutreffend |
Nicht zutreffend |
Ausnahmebehandlung
Zweck |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Ausnahmebehandlung |
Strukturierte Ausnahmebehandlung:__try, __except C++-Ausnahmebehandlung: CLR-Ausnahmebehandlung: |
Entscheidungsstrukturen
Zweck |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Entscheidungsstruktur (Auswahl) |
||||
Entscheidungsstruktur (if ....)anschließend) |
||||
Schleifenstruktur (bedingt) |
||||
Schleifenstruktur (Iteration) |
Arrays
Zweck |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Deklarieren eines Arrays |
int[] x = new int[5]; |
let x = [| 1; 2; 3; 4; 5 |] |
||
Initialisieren eines Arrays |
let x = [| 1; 2; 3; 4; 5 |] |
|||
Array neu zuordnen |
Nicht zutreffend |
Nicht zutreffend |
Nicht zutreffend |
Gültigkeitsbereich der Klasse
Zweck |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Sichtbar außerhalb des Projekts oder der Assembly |
||||
Nur innerhalb der Klasse sichtbar, in der er deklariert wurde |
||||
Nur innerhalb aktueller oder abgeleiteter Klassen sichtbar. |
Nicht zutreffend |
Nicht zutreffend |
||
Der Zugriff ist auf die aktuelle Assembly oder die von der enthaltenden Klasse abgeleiteten Typen begrenzt. |
protected internal |
Nicht zutreffend |
||
Nur innerhalb des Projekts sichtbar (bei geschachtelten Klassen innerhalb der einschließenden Klasse) |
Memberbereich
Zweck |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Zugriff außerhalb von Klassen, Projekten und Modulen möglich. |
||||
Zugriff außerhalb der Klasse, aber innerhalb des Projekts oder Pakets möglich. |
public private |
|||
Zugriff nur auf aktuelle und abgeleitete Klassen möglich. |
Nicht zutreffend |
|||
Zugriff nur innerhalb von Klassen oder Modulen möglich. |
||||
Festlegen, dass eine Funktion oder eine andere Klasse Zugriff auf private Member der deklarierenden Klasse hat |
Nicht zutreffend |
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 internal |
Nicht zutreffend |
Allgemeine Lebensdauer
Zweck |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Beibehalten der lokalen Variablen der Prozedur |
Nicht zutreffend |
|||
Gemeinsamer Zugriff durch alle Instanzen einer Klasse |
Allgemeines
Zweck |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Kommentar-Code |
//, (* *) für mehrzeilige Kommentare |
|||
Unterscheidung nach Groß-/Kleinschreibung? |
Nein |
Ja |
Ja |
Ja |
Aufruf von Windows-API |
Nicht zutreffend |
Verwenden Sie "Plattformaufruf". Siehe Externe Funktionen (F#). |
||
Deklarieren und Auslösen eines Ereignisses |
Nicht zutreffend |
|||
Threading primitives |
Nicht zutreffend |
|||
Go to (Verzweigung) |
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