Comparaison des mots clés dans divers langages
Cette rubrique répertorie les tâches de programmation courantes qui peuvent être résumées avec un mot clé.Pour plus d'informations sur les tâches qui nécessitent des exemples de code, consultez Comparaison des concepts de programmation dans divers langages, avec des exemples de code.
Objectif |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Déclarer une variable |
déclarateurs (concept, et non mot clé) |
déclarateurs (les mots clés incluent des types définis par l'utilisateur et des types intégrés) |
||
Déclarer une constante nommée |
||||
Crée une instance de la classe. |
new |
|||
Créer un nouvel objet |
CreateObject pour les objets COM |
CoCreateInstance() (pour les objets COM) |
new |
|
Assigner un objet à une variable objet |
= |
= |
<- |
|
La fonction/méthode ne retourne pas de valeur |
Sub2 |
|||
Surcharger une fonction ou une méthode (en Visual Basic : surcharger une procédure ou une méthode) |
(Aucun mot clé du langage n'est requis à cet effet) |
(Aucun mot clé du langage n'est requis à cet effet) |
||
Faire référence à l'objet en cours |
Me3 |
Utilisez l'auto-identificateur comme décrit dans les Méthodes ou les Membres |
||
Effectuer un appel non virtuel à une méthode virtuelle de l'objet en cours |
MyClass::Func1(), où MyClass est une classe C++ ayant une fonction membre Func1. |
Non applicable |
Non applicable |
|
Récupérer un caractère d'une chaîne |
GetChar, ou str(10) où str est une chaîne |
*(p + 10) ou p[10] où p représente un char* ou wchar_t* |
str[10] où str représente une chaîne |
str.Chars(10) où str représente une chaîne |
Déclarer un type de données composé (structure) |
||||
Initialiser un objet (constructeur) |
constructeurs (concept, et non mot clé) |
Constructeurs, ou constructeurs de type par défaut du système |
||
Terminer un objet directement |
Non applicable |
~NomClasse |
Non applicable |
Non applicable |
Une méthode appelée par le système juste avant une opération garbage collection récupère un objet5 |
Finalize (dans Visual Basic 6.0, Class_Terminate) |
Destructeurs (C++) (le concept, pas le mot clé) |
||
Garantir que les ressources non managées sont supprimées après utilisation |
Non applicable |
|||
Initialiser une variable à l'endroit où elle est déclarée |
Dim x As Long = 5 Dim c As New Car(FuelTypeEnum.Gas) |
// initialise à une valeur : int x=5; //avec un constructeur approprié : C c(10); |
// initialise à une valeur : int x = 123; // ou utilise le constructeur par défaut : int x = new int(); |
let x = 123 |
Prendre l'adresse d'une fonction |
AddressOf (Cet opérateur retourne la référence à une fonction sous la forme d'une instance de délégué) |
|||
Rappel |
Passez l'adresse d'une fonction à une autre qui rappelle la méthode appelante.Pour obtenir un exemple, consultez Comment : passer des procédures à une autre procédure en Visual Basic. |
CALLBACK (un type standard) callback (attribut IDL) |
Non applicable |
|
Déclarer qu'un objet peut être modifié de manière asynchrone. |
Non applicable |
Non applicable |
||
Forcer une déclaration explicite de variables |
Non applicable (les variables All doivent être déclarées avant d'être utilisées) |
Non applicable (les variables All doivent être déclarées avant d'être utilisées) |
Non applicable (les variables All doivent être déclarées avant d'être utilisées) |
|
Activer l'inférence de type de variable locale. |
L'inférence de type est automatiquement activée |
|||
Tester une variable objet ne faisant pas référence à un objet |
pobj == NULL |
obj == null |
Utilisez un type d'option dans une expression de correspondance |
|
Valeur d'une variable objet ne faisant pas référence à un objet |
nullptr |
|||
Tester une expression de base de données null |
Non applicable |
Non applicable |
Non applicable |
|
Tester si une variable Variant a été initialisée |
Non applicable |
Non applicable |
Non applicable |
Non applicable |
Définir une propriété par défaut |
property: le mot clé d' propertyfait référence au code managé |
Programmation orientée objet
Objectif |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Faire référence à une classe de base |
||||
Déclarer une interface |
||||
Spécifier une interface à implémenter |
(Est simplement dérivé de l'interface) class C1 : public I1 |
class C1 : I1 Interfaces |
||
Déclarer une classe |
||||
Déclarer un module |
static class |
static class |
||
Déclarer la définition partielle d'une classe ou d'une structure |
Non applicable |
Pas d'équivalent direct.Consultez Extensions de type (F#). |
||
Spécifier qu'une classe peut uniquement être héritée.Il est impossible de créer une instance de la classe. |
||||
Spécifier qu'une classe ne peut pas être héritée. |
||||
Déclarer un type énuméré |
||||
Déclarer une constante de classe |
const (appliqué à une déclaration de champ) |
Les valeurs sont immuables (constantes) par défaut.Consultez Valeurs (F#). |
||
Dériver une classe d'une classe de base |
Class C1 : public Base (Aucun mot clé du langage n'est requis à cet effet) |
class C1 : C2 |
||
Substituer une méthode ou une propriété |
(Aucun mot clé du langage requis à cet effet, sauf override pour les compilations /clr - consultez Classes dérivées) |
|||
Déclarer une méthode qui doit être implémentée dans une classe dérivée |
Placez = 0 à la fin de la déclaration (méthode virtuelle pure) |
|||
Déclarer une méthode qui ne peut pas être substituée |
NotOverridable (Les méthodes sont NotOverridable par défaut.) |
Utilisez l'attribut Sealed |
||
Déclarer une méthode virtuelle ou une propriété, ou un accesseur de propriété |
abstract, comme décrit dans Methods |
|||
Masque un membre de la classe de base dans une classe dérivée |
Le masquage d'une méthode virtuelle ou abstraite n'est pas autorisé |
|||
Déclarer une référence de type sécurisé à une méthode de classe |
myObj.myFunction où myObj est un objet et myMethod est une méthode disponible sur cet objet. |
|||
Spécifier qu'une variable peut contenir un objet dont vous souhaitez gérer les événements |
Non applicable |
(Écrivez du code - aucun mot clé spécifique) |
Non applicable |
|
Spécifier les événements pour lesquels une procédure événementielle sera appelée |
Handles (les procédures événementielles peuvent toujours être associées à une variable WithEvents par modèle d'affectation de noms) |
Non applicable |
event += eventHandler; |
Non applicable |
Évaluer une expression d'objet une fois, afin d'accéder à plusieurs membres |
Non applicable |
Non applicable |
Non applicable |
Gestion des exceptions
Objectif |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Gestion des exceptions |
Gestion structurée des exceptions :__try, __except Gestion des exceptions C++ : Gestion des exceptions CLR : |
Structures de décision
Objectif |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Structure de la décision (sélection) |
||||
Structure de décision (if ...then) |
||||
Structure de boucle (conditionnelle) |
||||
Structure de boucle (itération) |
Tableaux
Objectif |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Déclarer un tableau |
int[] x = new int[5]; |
let x = [| 1; 2; 3; 4; 5 |] |
||
Initialiser un tableau |
let x = [| 1; 2; 3; 4; 5 |] |
|||
Réallouer un tableau |
Non applicable |
Non applicable |
Non applicable |
Portée de classe
Objectif |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Visible en dehors du projet ou de l'assembly |
||||
Visible uniquement dans l'assembly dans lequel elle est déclarée. |
||||
Visible uniquement dans les classes courantes ou dérivées |
Non applicable |
Non applicable |
||
L'accès est restreint à l'assembly en cours ou aux types dérivés de la classe conteneur. |
protected internal |
Non applicable |
||
Visible uniquement dans le projet (pour les classes imbriquées, dans la classe englobante) |
Portée des membres
Objectif |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Accessible à l'extérieur d'une classe, d'un projet et d'un module |
||||
Accessible à l'extérieur de la classe, mais dans le projet ou le package |
public private |
|||
Accessible uniquement aux classes en cours et dérivées |
Non applicable |
|||
Uniquement accessible dans une classe ou un module |
||||
Spécifier qu'une fonction ou une autre classe peut accéder aux membres privés de la classe de déclaration |
Non applicable |
Non applicable |
Non applicable |
|
Protégé à l'intérieur de l'assembly et exclusivité des autres assemblys |
Non applicable |
protected private |
Non applicable |
Non applicable |
L'accès est restreint à l'assembly en cours ou aux types dérivés de la classe conteneur. |
protected internal |
Non applicable |
Durée de vie diverse
Objectif |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Conserver les variables locales de la procédure |
Non applicable |
|||
Partagé par toutes les instances d'une classe |
Divers
Objectif |
Visual Basic |
C++ |
C# |
F# |
---|---|---|---|---|
Commenter le code |
//, (* *) pour les commentaires multilignes |
|||
Respect de la casse ? |
Non |
Oui |
Oui |
Oui |
Appeler une API Windows |
Non applicable |
Utiliser l'appel de code non managé. Consultez Fonctions externes (F#). |
||
Déclarer et déclencher un événement |
Non applicable |
|||
Primitives de thread |
Non applicable |
|||
Aller à (branche) |
Non applicable |
1 Dans Visual Basic, vous ne pouvez utiliser Static seul pour déclarer une variable (Static x As Long, par exemple) que dans une procédure.
2 Dans Visual Basic, les procédures déclarées avec le mot clé Sub ne peuvent pas retourner de valeurs.Si une procédure doit retourner une valeur, vous devez la déclarer avec le mot clé Function.
3 Dans Visual Basic, Me n'est pas résolu au moment de la compilation. Vous pouvez donc l'utiliser comme valeur de retour d'une propriété ou d'une méthode.
4 Dans Visual Basic, les constructeurs des classes dérivées du System.Object du .NET Framework sont toujours nommés New.
5 En général, le code de cette méthode libère des ressources système qui ne seraient pas automatiquement libérées par le garbage collector.
6 En C++, une classe abstraite comprend au moins un membre virtuel pur.
7 Dans Visual Basic, les variables locales statiques de méthodes de classe non partagées sont stockées par instance de classe, au lieu de partager une même copie comme dans d'autres langages.Lorsque le mot clé Static est utilisé pour déclarer une variable, la valeur de cette variable est conservée même si la variable perd puis reprend sa portée.
Voir aussi
Référence
Comparaison des concepts de programmation dans divers langages, avec des exemples de code
Opérateurs comparés dans différents langages
Types de données comparés dans différents langages
Comparaison des contrôles et des objets programmables dans divers langages et bibliothèques