Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Esporta (0) Stampa
Espandi tutto
Importante È possibile che questo documento non rappresenti le procedure consigliate per lo sviluppo attuale e che i collegamenti ai download e ad altre risorse non siano più validi. La versione consigliata attuale è disponibile qui.

Confronto tra parole chiave in diversi linguaggi

In questo argomento vengono elencate le comuni attività di programmazione che è possibile riepilogare con una parola chiave del linguaggio. Per ulteriori informazioni sulle attività per cui sono necessari esempi di codice, vedere Confronto tra concetti di programmazione in diversi linguaggi con esempi di codice.

Funzione Visual Basic Visual J# C++ C# JScript Visual FoxPro

Dichiarare una variabile

Istruzione Dim (Visual Basic)

Public (Visual Basic)

Friend (Visual Basic)

Protected (Visual Basic)

Private (Visual Basic)

Shared (Visual Basic)

Static (Visual Basic) 1

public

protected

private

static

final

volatile

transient

dichiaratori (concetto, non parola chiave)

dichiaratori (le parole chiave includono tipi definiti dall'utente e tipi incorporati)

var

(dichiarazione implicita)

PUBLIC

LOCAL

PRIVATE

Dichiarare una costante denominata

Const

final

const

const

readonly

const

#DEFINE

Creare una nuova istanza di una classe

New

new

new

gcnew

new

new

Funzione NEWOBJECT( )

Creare un nuovo oggetto

CreateObject()

new

CoCreateInstance() (per oggetti COM)

new 

nuovo ActiveXObject()

Funzione CREATEOBJECT( )

Assegnare un oggetto a una variabile oggetto

=

=

=

=

=

=

STORE

Funzione/metodo che non restituisce un valore

Sub 2

void

void

void

void

Void (solo server COM)

Overload di una funzione o di un metodo (Visual Basic: overload di una routine o metodo)

Overloads

(Nessuna parola chiave del linguaggio richiesta)

(Nessuna parola chiave del linguaggio richiesta)

(Nessuna parola chiave del linguaggio richiesta)

(Nessuna parola chiave del linguaggio richiesta)

(Nessuna parola chiave del linguaggio richiesta)

Fare riferimento all'oggetto corrente

Me 3

this

this

this

this

this

thisform

Effettuare una chiamata non virtuale a un metodo virtuale dell'oggetto corrente

MyClass

n/d

MyClass::Func1(), dove MyClass è una classe C++ con una funzione membro Func1.

n/d

n/d

n/d

Recuperare un carattere da una stringa

str(10) dove str è una stringa

string

str[10] dove str è una stringa

string

*(p + 10) o p[10] dove p corrisponde a char* o wchar_t*

str[10] dove str è una stringa

string

str[10], dove str è una string

charAt

substring

substr

SUBSTR( )

Dichiarare un tipo di dati composito (struttura)

Struttura

class, interface

class

struct

union

__interface

struct

class

interface

class, interface

n/d

Inizializzare un oggetto (costruttore)

Sub New() 5

costruttori (concetto, non parola chiave)

costruttori (concetto, non parola chiave)

Costruttori o costruttori di tipi predefiniti del sistema

Costruttori di classi

Costruttore (concetto, non parola chiave)6

Evento Init

Terminare direttamente un oggetto

n/d

n/d

~ ClassName

n/d

n/d

n/d

Metodo chiamato dal sistema appena prima che Garbage Collection recuperi un oggetto7

Finalize (in Visual Basic 6.0, Class_Terminate)

finally

destructor

Distruttori

n/d

Evento Destroy

Inizializzare una variabile nel punto di dichiarazione

Dim x As Long = 5

Dim c As New Car(FuelTypeEnum.Gas)

int x = 5;

// o inizializzare per costruttore

C c(10);

int x=5;

// inizializzare su un valore:

int x = 123;

// o utilizzare il costruttore predefinito:

int x = new int();

var x = 5

var y : car = new car()

LOCAL x

x = 5

Accettare l'indirizzo di una funzione

AddressOf (questo operatore restituisce un riferimento a una funzione sotto forma di istanza di delegato)

delegate

multicast

/** @delgate */

delegate

delegate

Utilizzare il nome della funzione senza parentesi

n/d

Callback

Passare l'indirizzo di una funzione ad un'altra che richiama il chiamante. Per un esempio, vedere Procedura: passare una routine a un'altra routine in Visual Basic.

Passare l'indirizzo di una funzione ad un'altra che richiama il chiamante. Per un esempio, vedere Utilizzo delle funzioni di callback.

CALLBACK (tipo standard)

callback (attributo IDL)

delegate

n/d

n/d

Dichiarare che un oggetto può essere modificato in modo asincrono

n/d

volatile

volatile

volatile

n/d

n/d

Forzare la dichiarazione esplicita delle variabili

Option Explicit

n/d (Tutte le variabili devono essere dichiarate prima dell'uso)

n/d (Tutte le variabili devono essere dichiarate prima dell'uso)

n/d (Tutte le variabili devono essere dichiarate prima dell'uso)

modalità fast (attiva in base all'impostazione predefinita)

_VFP.LanguageOptions NEW 

Eseguire il test di una variabile oggetto che non fa riferimento a un oggetto

obj Is Nothing

pObj == null

pobj == NULL

obj == null

obj == undefined

obj == null

VARTYPE(obj)=="0"

Valore di una variabile oggetto che non fa riferimento a un oggetto

Nothing

null

nullptr

null

null

undefined

.F.

Eseguire il test di un'espressione null di database

IsDbNull

Supportata da diversi tipi di dati nello spazio dei nomi System.Data.SqlTypes

n/d

n/d

x == null

ISNULL( )

Verificare se una variabile Variant è stata inizializzata

n/d

n/d

n/d

n/d

x == undefined

EMPTY( )

Definire una proprietà predefinita

Default

n/d

property

Indicizzatori

n/d

n/d

Funzione Visual Basic Visual J# C++ C# JScript Visual FoxPro

Fare riferimento a una classe base

MyBase

super

__super

base

super

Proprietà BaseClass

Proprietà ParentClass

DODEFAULT()

Class::member

Dichiarare un'interfaccia

Interfaccia

interface

__interface

interface class

interface

interface

DEFINE CLASS

Specificare un'interfaccia da implementare

Implements (istruzione)

implements (clausola su dichiarazione di classe)

(È sufficiente derivare dall'interfaccia)

class C1 : public I1

class C1 : I1

Interfacce

IMPLEMENTS

IMPLEMENTS Nuovo 

Dichiarare una classe

Classe

class

class

Classes and Structs (Managed)

class

class

DEFINE CLASS MyClass AS <ParentClass>

Dichiarare un modulo

Istruzione Module

n/d

static class

static class

n/d

n/d

Dichiarare una definizione parziale di una classe o struttura

Partial (Visual Basic)

n/d

n/d

Partial

n/d

n/d

Specificare che una classe può essere solo ereditata. Non è possibile creare un'istanza della classe.

MustInherit

abstract

abstract (C++)

abstract

abstract

n/d

Specificare che una classe non può essere ereditata

NotInheritable

final

sealed

sealed

final

n/d

Dichiarare un tipo enumerato

Enum <members> End Enum

n/d

enum

enum

enum

n/d

Dichiarare una costante di classe

Const

static final (applicata a una dichiarazione di campo)

const

const (applicata a una dichiarazione di campo)

const

#DEFINE

Derivare una classe da una classe base

Inherits C2

class C1 extends C2

Class C1 : public Base (nessuna parola chiave del linguaggio necessaria)

class C1 : C2

class

Class c1 extends c2

DEFINE CLASS MyClass AS ParentClass

Eseguire l'override di un metodo o una proprietà

Overrides

(Nessuna parola chiave del linguaggio richiesta)

(Nessuna parola chiave del linguaggio richiesta tranne override per le compilazioni con /clr. Vedere Derived Classes)

override

(Nessuna parola chiave del linguaggio richiesta)

(Nessuna parola chiave del linguaggio richiesta)

Dichiarare un metodo che deve essere implementato in una classe di derivazione

MustOverride

abstract

Inserire = 0 alla fine della dichiarazione (metodo virtual pure)

abstract

abstract

(Nessuna parola chiave del linguaggio richiesta)

Dichiarare un metodo non sottoponibile a override

NotOverridable (i metodi sono NotOverridable per impostazione predefinita)

final

sealed

sealed

final

n/d

Dichiarare una proprietà o un metodo virtuale oppure una funzione di accesso a una proprietà

Overridable

(I metodi sono virtuali in base all'impostazione predefinita)

virtual

virtual

(I metodi sono virtuali in base all'impostazione predefinita)

n/d

Nascondere un membro di una classe base in una classe derivata

Shadowing

n/d

new (new slot in vtable)

new (Riferimenti per C#)

Modificatore new

n/d

Dichiarare un riferimento indipendente dai tipi al metodo di una classe

Delegato

delegate

multicast

/** @delgate */

delegate

delegate

Utilizzare il nome della funzione senza parentesi

n/d

Specificare che una variabile può contenere un oggetto di cui si desidera gestire gli eventi

WithEvents

n/d

n/d

(Scrivere il codice - nessuna parola chiave specifica)

(Scrivere il codice - nessuna parola chiave specifica)

EVENTHANDLER( ) Nuovo 

Specificare gli eventi per cui verrà chiamata una routine eventi

Handles (le routine eventi possono comunque essere associate a una variabile WithEvents in base al modello di denominazione)

n/d

n/d

event += eventHandler;

n/d

BINDEVENTS( )

Valutare una volta un'espressione dell'oggetto per accedere a più membri

With objExpr <.member><.member> End With

n/d

n/d

Istruzione using (Riferimenti per C#)

with

WITH ... ENDWITH

Funzione Visual Basic Visual J# C++ C# JScript Visual FoxPro

Gestione strutturata delle eccezioni

Try <attempt>

Catch

<handle errors>

Finally

<always execute>

End Try

Throw

try

catch

finally

throw

__try, __except

__finally

try, catch, finally

throw

try

catch

finally

throw

TRY

   [ tryCommands ]

[ CATCH [ To VarName ] [ WHEN IExpression ] ]

   [ catchCommands ] ]

[ THROW [ eUserExpression ] ]

[ EXIT ]

[ FINALLY

   [ finallyCommands ] ]

ENDTRY

Gestione delle eccezioni C++

n/d

n/d

try, catch, throw

n/d

n/d

n/d

Funzione Visual Basic Visual J# C++ C# JScript Visual FoxPro

Struttura decisionale (selezione)

Select Case ..., Case, Case Else, End Select

switch

case

break

default

switch, case, default

goto

break

switch

case

default

goto

break

switch

case

break

CASE

ICASE

Struttura decisionale (if ... then)

If ... Then, ElseIf ... Then, Else, End If

if

else

if, else

if, else

if

else

IF ... ENDIF

IIF( )

Struttura ciclica (condizionale)

While, Do [While, Until] ..., Loop [While, Until]

do

while

continue

do, while

continue

do

while

continue

do, while

break, continue

DO, WHILE (clausole)

Struttura ciclica (iterazione)

For ..., [Exit For] , Next

For Each ..., [Exit For] , Next

for

break

for

for

foreach

for (x=0;x<10;x++){...}

for (prop in obj) { print (obj[prop]);}

FOR (clausole)

FOR ... ENDFOR

Continue

NEXT

FOR EACH (clausole) ,FOR ... ENDFOR, Continue, Next

Funzione Visual Basic Visual J# C++ C# JScript Visual FoxPro

Dichiarare una matrice

Dim a() As Long

int[] x = new int[5];

int x[5];

int[] x = new int[5];

var x : int[]

var arr = Array()

DIMENSION

DECLARE

Inizializzare una matrice

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

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

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

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

var x : int[] = [1, 2, 3, 4, 5]

var arr = new Array(1, 2, 3, 4, 5)]

x[1] = 1

x[2] = 2

Riallocare una matrice

Redim

n/d

n/d

n/d

arr.length=newSize (solo per matrici JScript)10

DIMENSION

DECLARE

Funzione Visual Basic Visual J# C++ C# JScript Visual FoxPro

Visibile all'esterno del progetto o assembly

Public

public

public

public

public

n/d

Invisibile all'esterno dell'assembly o all'interno del package

Friend

(Omettendo la parola chiave dell'ambito si specifica un "ambito package")

private

internal

internal

n/d

Visibile solo nelle classi correnti o derivate

Protected (Visual Basic)

n/d

n/d

Protected

n/d

n/d

L'accesso è limitato all'assembly corrente o ai tipi derivati dalla classe di appartenenza.

Protected Friend

n/d

Type and Member Visibility

protected internal

Livelli di accessibilità

n/d

n/d

Visibile solo all'interno del progetto (per le classi nidificate, all'interno della classe che le contiene)

Private

private

private

private

private

n/d

Funzione Visual Basic Visual J# C++ C# JScript Visual FoxPro

Accessibile all'esterno della classe, del progetto e del modulo

Public

public

public

public

public

(Nessuna parola chiave del linguaggio richiesta)

Accessibile all'esterno della classe, ma all'interno del progetto o del package

Friend

(Omettendo la parola chiave dell'ambito si specifica un "ambito package")

public private:

internal

internal

n/d

Accessibile solo alle classi correnti e derivate

Protected

protected

protected

protected

protected

PROTECTED

Accessibile solo all'interno della classe o del modulo

Private

private

private

private

private

HIDDEN

Specificare che una funzione o un'altra classe ha accesso ai membri private di una classe dichiarante

n/d

n/d

friend (non consentito in C++)

friend

n/d

n/d

Protetto all'interno dell'assembly e privato per gli altri assembly

n/d

n/d

protected private

n/d

n/d

n/d

L'accesso è limitato all'assembly corrente o ai tipi derivati dalla classe di appartenenza

Protected Friend

n/d

Type and Member Visibility

protected internal

Livelli di accessibilità

n/d

n/d

Funzione Visual Basic Visual J# C++ C# JScript Visual FoxPro

Conservare le variabili locali della routine

Static 11

static

static

static (Riferimenti per C#)

n/d

n/d

Condiviso da tutte le istanze di una classe

Shared

static

static

static

static

n/d

Funzione Visual Basic Visual J# C++ C# JScript Visual FoxPro

Codice commenti

'

Rem

//

/**

*/

/*

*/

//, /* */ per commenti su più righe

//, /* */ per commenti su più righe

//, /* */ per commenti su più righe

//, /* */ per commenti su più righe

*

&&

NOTE

Distinzione tra maiuscole e minuscole

No

No

Chiamare l'API Windows

Declare <API>

Usare J/Direct le chiamate al sistema operativo

n/d

Utilizzare richiamo piattaforma

n/d

DECLARE - DLL

Dichiarare e generare un evento

Evento

RaiseEvent

Utilizzare la classe java.awt.Event

/** @event */

n/d

event

n/d

Funzione RAISEEVENT( )

Threading di primitivi

SyncLock

synchronized

n/d

lock

n/d

n/d

Passare a un punto (diramazione)

Goto

n/d

goto

goto

n/d

n/d

1 In Visual Basic, è possibile utilizzare soltanto Static per dichiarare una variabile, ad esempio Static x As Long, solo all'interno di una routine.

2 In Visual Basic, le routine dichiarate con la parola chiave Sub non possono restituire valori. Se una routine deve restituire un valore, è necessario dichiararla con la parola chiave Function.

3 In Visual Basic, Me non viene risolta in fase di compilazione e può pertanto essere utilizzata come valore restituito di una proprietà o un metodo.

4 In JScript, la funzione substr è ancora supportata, ma non è più il metodo ottimale per accedere ai caratteri all'interno di una stringa. Il modo più efficace per accedere ad un carattere da una specifica posizione in una stringa è utilizzando le parentesi quadre. Per accedere al decimo carattere della stringa str, ad esempio, utilizzare str[10].

5 In Visual Basic, i costruttori per le classi derivate da System.Object di .NET Framework sono sempre denominati New.

6 In JScript, non è consentito l'overload sui costruttori.

7 In genere, il codice in questo metodo libera risorse di sistema che altrimenti non verrebbero liberate automaticamente dal Garbage Collector.

8 In C++, una classe astratta include almeno un membro virtual pure.

9 In JScript non è presente il punto iniziale che verrebbe utilizzato in Visual Basic. Questa funzionalità può facilmente causare confusione, poiché le variabili possono essere erroneamente interpretate come proprietà e viceversa. Si noti inoltre che l'istruzione with produce codice lento.

10 In JScript, ciò non determina la riallocazione della matrice, né la relativa "espansione". Le matrici di JScript (dichiarate come tipo Array) sono sempre sparse e dinamiche. Le matrici native, dichiarate come System.Array o type[], non sono dinamiche.

11 In Visual Basic, le variabili locali statiche di metodi di classe non condivisi vengono archiviate per istanza di classe, anziché con la condivisione di un'unica copia come in altri linguaggi. Quando si utilizza Static per dichiarare una variabile, il valore di tale variabile viene mantenuto anche se la variabile perde e poi riacquisisce la propria area di validità.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft