|
Visual Studio |
|
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.
|
Scopo |
Visual Basic |
Visual J# |
C++ |
C# NEW |
JScript |
Visual FoxPro |
|
Dichiarare una variabile |
public, private, protected static, final, volatile,
transient |
dichiaratori (concetto, non parola chiave) |
dichiaratori (le parole chiave includono tipi definiti
dall'utente e tipi incorporati) |
[dichiarazione implicita]; anche PUBLIC, LOCAL, PRIVATE |
||
|
Dichiarare una costante denominata |
final |
const |
const NEW |
#DEFINE |
||
|
Creare un nuovo oggetto |
new |
new |
n/d |
|||
|
|
n/d |
CoCreateInstance() (per oggetti COM) |
|
ActiveXObject() nuovo |
CREATEOBJECT; NEWOBJECT |
|
|
Assegnare un oggetto a una variabile oggetto |
= |
= |
= |
=; anche STORE |
||
|
Funzione/metodo che non restituisce un valore |
Sub2 |
void |
void |
void |
Void (solo server COM) |
|
|
Overload di una funzione o di un metodo (Visual Basic: overload
di una routine o metodo) |
Overloads
NEW |
(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 |
Me3 |
this |
this |
This; Thisform |
||
|
Effettuare una chiamata non virtuale a un metodo virtuale
dell'oggetto corrente |
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 |
Funzione
GetChar NEW |
"" |
*(p + 10) oppure p[10] dove p è un carattere* |
[] |
SUBSTR( ) |
|
|
Dichiarare un tipo di dati composito (Visual Basic: Structure) |
class, interface |
class, struct, union __interface |
n/d |
|||
|
Inizializzare un oggetto (costruttori) |
costruttori (concetto, non parola chiave) |
costruttori (concetto, non parola chiave) |
Costruttori o costruttori di tipi predefiniti del sistema |
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 NEW (In Visual Basic 6.0, Class_Terminate) |
finally |
destructor |
destructor |
n/d |
Evento Destroy |
|
Inizializzare una variabile nel punto di dichiarazione |
Dim x As Long = 5 Dim c As New
Car(FuleTypeEnum.Gas) |
int x = 5; //oppure inizializzato dal 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() |
n/d |
|
Accettare l'indirizzo di una funzione |
AddressOf
(per un membro di classe, questo operatore restituisce un riferimento a
una funzione sotto forma di istanza di delegato) |
delegate, multicast, /** @delgate */ |
Utilizzare il nome della funzione senza parentesi |
n/d |
||
|
Callback |
n/d |
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); |
n/d |
n/d |
n/d |
|
Dichiarare che un oggetto pul essere modificato in modo
asincrono |
n/d |
volatile |
volatile |
n/d |
n/d |
|
|
Forzare la dichiarazione esplicita delle variabili |
N/d. Tutte le variabili devono essere dichiarate prima
dell'utilizzo. |
N/d. Tutte le variabili devono essere dichiarate prima
dell'utilizzo. |
N/d. Tutte le variabili devono essere dichiarate prima
dell'utilizzo. |
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 |
pObj == null |
pobj == NULL |
obj == null |
obj == undefined obj == null |
EMPTY(); ISNULL() |
|
|
Valore di una variabile oggetto che non fa riferimento a un
oggetto |
null |
n/d |
null undefined |
n/d |
||
|
Eseguire il test di un'espressione null di database |
Supportata da vari 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
NEW |
"" |
n/d |
n/d |
n/d |
Programmazione orientata ad oggetti
|
Scopo |
Visual Basic |
Visual J# |
C++ |
C# NEW |
JScript |
Visual FoxPro |
|
Fare riferimento a una classe base |
MyBase
NEW |
super |
__super |
super NEW |
Proprietà BaseClass; ParentClass proprietà; DODEFAULT() |
|
|
Dichiarare un'interfaccia |
Interface
NEW |
interface |
__interface |
interface NEW |
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 |
implements NEW |
IMPLEMENTS NEW |
|
Dichiarare una classe |
Class
NEW |
class |
class |
class NEW |
DEFINE CLASS |
|
|
Specificare che una classe può essere solo ereditata. Non è
possibile creare un'istanza della classe. |
MustInherit NEW |
abstract |
__abstract8
(solo nelle estensioni gestite per C++) |
abstract NEW |
n/d |
|
|
Specificare che una classe non può essere ereditata |
NotInheritable NEW |
final |
__sealed
(solo nelle estensioni gestite per C++) |
final NEW |
n/d |
|
|
Dichiarare un tipo enumerato |
n/d |
enum |
enum NEW |
n/d |
||
|
Dichiarare una costante di classe |
static final (applicata a una dichiarazione di campo) |
const |
const
(applicata a una dichiarazione di campo) |
const NEW |
#DEFINE |
|
|
Derivare una classe da una classe base |
Inherits
C2 NEW |
class C1 extends C2 |
Class C1 : public Base (non è necessaria alcuna parola chiave
del linguaggio) |
class C1 : C2 |
DEFINE CLASS |
|
|
Eseguire l'override di un metodo |
Overrides
NEW |
(Nessuna parola chiave del linguaggio richiesta) |
(Nessuna parola chiave del linguaggio richiesta) |
(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
NEW |
abstract |
Inserire = 0 alla fine della dichiarazione (metodo pure
virtual) |
abstract NEW |
(Nessuna parola chiave del linguaggio richiesta) |
|
|
Dichiarare un metodo non sottoponibile ad override |
NotOverridable NEW (per impostazione
predefinita non è possibile sovrascrivere i metodi) |
final |
__sealed
(solo nelle estensioni gestite per C++) |
final NEW |
n/d |
|
|
Dichiarare una proprietà, metodo virtuale (Visual Basic) o una
funzione di accesso a una proprietà (C#, C++) |
(I metodi sono virtuali in base all'impostazione predefinita) |
virtual |
(I metodi sono virtuali in base all'impostazione predefinita) |
n/d |
||
|
Nascondere un membro di una classe basse in una classe derivata |
n/d |
n/d |
n/d |
n/d |
||
|
Dichiarare un riferimento type-safe al metodo di una classe |
Delegate
NEW |
delegate, multicast, /** @delgate */ |
__delegate
(solo nelle estensioni gestite per C++) |
Utilizzare il nome della funzione senza parentesi |
n/d |
|
|
Specificare che una variabile può contenere un oggetto di cui si
desidera gestire gli eventi |
n/d |
n/d |
(Scrivere il codice - nessuna parola chiave specifica) |
(Scrivere il codice - nessuna parola chiave specifica) |
EVENTHANDLER( ) NEW |
|
|
Specificare gli eventi per cui verrà chiamata una routine eventi |
Handles
NEW |
n/d |
n/d |
n/d |
n/d |
n/d |
|
Valutare una volta un'espressione oggetto per accedere a più
membri |
n/d |
n/d |
n/d |
with9 |
WITH ... ENDWITH |
Gestione delle eccezioni
|
Scopo |
Visual
Basic |
Visual
J# |
C++ |
C# NEW |
JScript |
Visual
FoxPro |
|
Gestione
delle eccezioni strutturata |
Try NEW <attempt> |
try,
catch, finally, throw |
__try,
__except, __finally |
ONERROR( ), COMRETURNERROR( ),
ERROR(); MESSAGE(), AERROR() |
||
|
Gestione
delle eccezioni C++ |
n/d |
n/d |
try,
catch, throw |
n/d |
n/d |
n/d |
Strutture decisionali
|
Scopo |
Visual
Basic |
Visual
J# |
C++ |
C# NEW |
JScript |
Visual
FoxPro |
|
Struttura
decisionale (selezione) |
switch,
case, break, default |
switch, case, default, goto, break |
switch,
case, default, goto, break |
CASE |
||
|
Struttura
decisionale (if ... then) |
if,
else |
if, else |
IF
... ENDIF |
|||
|
Struttura
ciclica (condizionale) |
do,
while, continue |
do,
while, continue |
DO,
WHILE (clausole) |
|||
|
Struttura
ciclica (iterazione) |
for,
break |
for |
FOR (clausole), FOR ... ENDFOR,
Continue, Next |
Matrici
|
Scopo |
Visual
Basic |
Visual
J# |
C++ |
C# NEW |
JScript |
Visual
FoxPro |
|
Dichiarare
una matrice |
int[] x
= new int[5]; |
int
x[5]; |
DIMENSION, DECLARE |
|||
|
Inizializzare
una matrice |
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)] |
DIMENSION, DECLARE |
|
|
Riallocare
una matrice |
n/d |
n/d |
n/d |
arr.length=newSize(solo
per matrici JScript)10 |
DIMENSION, DECLARE |
Area di validità di una classe
|
Scopo |
Visual
Basic |
Visual
J# |
C++ |
C# NEW |
JScript |
Visual
FoxPro |
|
Visibile
all'esterno del progetto o assembly |
public |
public |
public NEW |
PUBLIC |
||
|
Invisibile
all'esterno dell'assembly (C#/Visual Basic) o all'interno del package (Visual
J#, JScript) |
(Omettendo
la parola chiave dell'ambito si specifica un "ambito package") |
private |
internal NEW |
n/d |
||
|
Visibile
solo all'interno del progetto (per le classi nidificate, all'interno della
classe che le contiene) |
private |
private |
private NEW |
HIDDEN |
Area di validità di un membro
|
Scopo |
Visual
Basic |
Visual
J# |
C++ |
C# NEW |
JScript |
Visual
FoxPro |
|
Accessibile
all'esterno della classe e del progetto (Visual J#/JScript/C++/Visual Basic)
o del modulo (Visual Basic) |
public |
public |
public NEW |
PUBLIC |
||
|
Accessibile
all'esterno della classe ma all'interno del progetto (C#, Visual Basic, C++)
o del package (Visual J#, JScript) |
(Omettendo
la parola chiave dell'ambito si specifica un "ambito package") |
public
private: |
internal NEW |
n/d |
||
|
Accessibile
solo all'interno della classe (Visual J#/JScript/C++/Visual Basic) o del
modulo (Visual Basic) |
private |
private |
private NEW |
HIDDEN |
||
|
Accessibile
solo alle classi correnti e derivate |
Protected NEW |
protected |
protected |
protected NEW |
PROTECTED |
|
|
Specificare
che una funzione o un'altra classe ha accesso ai membri private di una classe
dichiarante |
n/d |
n/d |
friend (non
consentito nelle estensioni gestite per C++) |
n/d |
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 |
Varie Durata
|
Scopo |
Visual
Basic |
Visual
J# |
C++ |
C# NEW |
JScript |
Visual
FoxPro |
|
Conservare
le variabili locali della routine |
Static11 |
static |
static |
n/d |
n/d |
PRIVATE |
|
Condiviso
da tutte le istanze di una classe |
Shared NEW |
static |
static |
static NEW |
n/d |
Varie
|
Scopo |
Visual
Basic |
Visual
J# |
C++ |
C# NEW |
JScript |
Visual
FoxPro |
|
Codice
commenti |
// /** */ /* */ |
//, /* */
per commenti su più righe |
*;
&& |
|||
|
Distinzione
tra maiuscole e minuscole |
No |
Sì |
Sì |
Sì |
Sì |
No |
|
Chiamare
l'API Windows |
Usare
J/Direct le chiamate al sistema operativo |
n/d |
n/d |
DECLARE -
DLL |
||
|
Dichiarare e
generare un evento |
Utilizzare
la classe java.awt.Event o /** @event */ |
n/d |
n/d |
n/d |
||
|
Threading di
primitivi |
synchronized |
|
n/d |
n/d |
||
|
Passare a un
punto |
n/d |
goto |
n/d |
n/d |
3. Me non viene risolta in fase di compilazione,
quindi può essere utilizzata come valore restituito di una proprietà o metodo.
4. Sebbene sia ancora supportata, la funzione substr
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, ad
esempio, al decimo carattere della stringa str, utilizzare str[10].
6. Non è consentito l'overload sui costruttori in JScript.
9. Si noti l'assenza del punto iniziale che si
utilizzerebbe in Visual Basic. Questa funzionalità può facilmente causare
confusione in quanto le variabili possono essere scambiate per proprietà e
viceversa. Si noti inoltre che l'istruzione with produce codice lento.
10. Non rialloca la matrice e neanche la
"espande". 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. Le variabili locali statiche di metodi di classe non
condivisi sono memorizzate per istanza di classe in Visual Basic anziché
condividere 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à.