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

Dim

Public

Friend

Protégé

Privé

Shared

Statique1

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)

Liaisons let

Valeurs

Déclarer une constante nommée

Const

const

const

readonly

Liaisons let

Valeurs

Crée une instance de la classe.

Nouveau

new

gcnew

new

new

Créer un nouvel objet

Nouveau

CreateObject pour les objets COM

CoCreateInstance() (pour les objets COM)

new 

new

Assigner un objet à une variable objet

=

=

=

<-

La fonction/méthode ne retourne pas de valeur

Sub2

void

void

Type d'unité

Surcharger une fonction ou une méthode (en Visual Basic : surcharger une procédure ou une méthode)

Overloads

(Aucun mot clé du langage n'est requis à cet effet)

(Aucun mot clé du langage n'est requis à cet effet)

override

Faire référence à l'objet en cours

Me3

this

this

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

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

string

str.Chars(10) où str représente une chaîne

Chaînes

Déclarer un type de données composé (structure)

Structure

Classe

Interface

classe

struct

union

__interface

struct

classe

interface

Classes

Initialiser un objet (constructeur)

Sub New()4

constructeurs (concept, et non mot clé)

Constructeurs, ou constructeurs de type par défaut du système

Constructeurs de classe

Constructeurs

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é)

Destructeurs

Finalize

Garantir que les ressources non managées sont supprimées après utilisation

Using

Non applicable

utilisation

Gestion des ressources

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é)

delegate

délégué

Fonctions

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)

délégué

Non applicable

Déclarer qu'un objet peut être modifié de manière asynchrone.

Non applicable

volatile

volatile

Non applicable

Forcer une déclaration explicite de variables

Option Explicit

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.

Option Infer

L'inférence de type est automatiquement activée

Tester une variable objet ne faisant pas référence à un objet

obj Is Nothing

pobj == NULL

obj == null

Utilisez un type d'option dans une expression de correspondance

Option

Mettre en correspondance des expressions.

Valeur d'une variable objet ne faisant pas référence à un objet

Nothing

nullptr

null

Valeurs Null

Tester une expression de base de données null

IsDBNull

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

Par défaut

property: le mot clé d' propertyfait référence au code managé

Indexeurs

Propriétés indexées

Programmation orientée objet

Objectif

Visual Basic

C++

C#

F#

Faire référence à une classe de base

MyBase

__super

base

base

Déclarer une interface

Interface

__interface

classe d'interface

interface

interface

Spécifier une interface à implémenter

Implémente

(Est simplement dérivé de l'interface)

class C1 : public I1

class C1 : I1

Interfaces

interface

Déclarer une classe

Classe

classe

Classes et structures (géré)

classe

type

Déclarer un module

Module

static class

static class

module

Déclarer la définition partielle d'une classe ou d'une structure

Partial

Non applicable

Partial

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.

MustInherit

résumé (Visual C++)6

abstract

Classes abstraites

Spécifier qu'une classe ne peut pas être héritée.

NotInheritable

sealed

sealed

SealedAttribute

Déclarer un type énuméré

Enum

enum

enum

type

Déclarer une constante de classe

Const

const

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

La classe C1 hérite de C2.

Class C1 : public Base (Aucun mot clé du langage n'est requis à cet effet)

class C1 : C2

classe

inherit

Substituer une méthode ou une propriété

Overrides

(Aucun mot clé du langage requis à cet effet, sauf override pour les compilations /clr - consultez Classes dérivées)

override

override

Déclarer une méthode qui doit être implémentée dans une classe dérivée

MustOverride

Placez = 0 à la fin de la déclaration (méthode virtuelle pure)

abstract

abstract

Déclarer une méthode qui ne peut pas être substituée

NotOverridable (Les méthodes sont NotOverridable par défaut.)

sealed

sealed

Utilisez l'attribut Sealed

Déclarer une méthode virtuelle ou une propriété, ou un accesseur de propriété

Overridable

virtual

virtual

abstract, comme décrit dans Methods

Masque un membre de la classe de base dans une classe dérivée

Occultation

nouveau (nouvel emplacement dans vtable)

new

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

Délégué

delegate

délégué

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

WithEvents

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

With...End With

Non applicable

Non applicable

Non applicable

Gestion des exceptions

Objectif

Visual Basic

C++

C#

F#

Gestion des exceptions

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

Throw

Gestion structurée des exceptions :__try, __except

__finally

Gestion des exceptions C++ :

try, catch, throw

Gestion des exceptions CLR :

gestion des exceptions sous /clr

try-catch-finally

throw

try

par

finally

Structures de décision

Objectif

Visual Basic

C++

C#

F#

Structure de la décision (sélection)

Sélectionner...Case...End Select

switch, case, default

goto

break

switch, case

par défaut

goto

break

Mettre en correspondance des expressions.

Structure de décision (if ...then)

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

ElseIf

if, else

if, else

if...then...else

Structure de boucle (conditionnelle)

While...End While

Do...Loop

do, while

continue

do

while

continue

while...do

Structure de boucle (itération)

For...Next

For Each...Next

for

for

foreach

for...to

for...in

Tableaux

Objectif

Visual Basic

C++

C#

F#

Déclarer un tableau

Dim a() As Long

int x[5];

int[] x = new int[5];

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

Tableaux

Initialiser un tableau

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

Tableaux

Réallouer un tableau

Redim

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

Public

public

public

public

Visible uniquement dans l'assembly dans lequel elle est déclarée.

Friend

private

internal

internal

Visible uniquement dans les classes courantes ou dérivées

Protégé

Non applicable

Protégé

Non applicable

L'accès est restreint à l'assembly en cours ou aux types dérivés de la classe conteneur.

Protected Friend

Type de visibilité et de membre

protected internal

Niveaux d'accessibilité

Non applicable

Visible uniquement dans le projet (pour les classes imbriquées, dans la classe englobante)

Privé

private

private

private

Portée des membres

Objectif

Visual Basic

C++

C#

F#

Accessible à l'extérieur d'une classe, d'un projet et d'un module

Public

public

public

public

Accessible à l'extérieur de la classe, mais dans le projet ou le package

Friend

public private

internal

internal

Accessible uniquement aux classes en cours et dérivées

Protégé

protected

protected

Non applicable

Uniquement accessible dans une classe ou un module

Privé

private

private

private

Spécifier qu'une fonction ou une autre classe peut accéder aux membres privés de la classe de déclaration

Non applicable

friend

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 Friend

Type de visibilité et de membre

protected internal

Niveaux d'accessibilité

Non applicable

Durée de vie diverse

Objectif

Visual Basic

C++

C#

F#

Conserver les variables locales de la procédure

Statique7

static

static

Non applicable

Partagé par toutes les instances d'une classe

Shared

static

static

static

Divers

Objectif

Visual Basic

C++

C#

F#

Commenter le code

'

Rem

//, /* */ pour les commentaires multilignes

//, /* */ pour les commentaires multilignes

/// pour les commentaires XML

//, (* *) pour les commentaires multilignes

Respect de la casse ?

Non

Oui

Oui

Oui

Appeler une API Windows

Declare <API>

Non applicable

utiliser l'appel de code non managé

Utiliser l'appel de code non managé.

Consultez Fonctions externes (F#).

Déclarer et déclencher un événement

Événement

RaiseEvent

Non applicable

événement

Événements

Primitives de thread

SyncLock

Non applicable

verrouiller

verrouiller

Aller à (branche)

Goto

goto

goto

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

Autres ressources

Équivalents de langage