Differenze strutturali tra C# e VB.net

Anche se C# e VB.NET sono sintatticamente differenti, l’unica differenza riscontrabile è questa. La Microsoft ha sviluppato entrambi i linguaggi in modo che facessero parte della stessa piattaforma di sviluppo, tanto che entrambi i linguaggi sono sviluppati, gestiti e supportati dallo stesso team di programmatori della Microsoft.  Nonostante le differenze semantiche, quindi, quasi ogni comando in VB ha un comando equivalente in C#, e viceversa.Infine, entrambi i linguaggi si rifanno alle stesse Base Classes del Framework .NET per esterndere le loro funzionalità. Come risultato, tranne alcune eccezioni, si ha che un programma scritto in uno dei due linguaggi può essere essere convertito nell’altro attraverso un semplice traduttore di sintassi.

Caratteristiche di Visual Basic .NET non applicabili a C#

  • La conversione del valore booleano TRUE in un intero può restituire il valore -1 o 1 a seconda della conversione utilizzata.
  • Per assegnare valori alle variabili e per confrontare variabili viene utilizzato lo stesso simbolo =, mentre C# utilizza simboli diversi,  == per fare confronti e = per assegnare valori.
  • VB.NET non è case-sensitive.
  • La funzione Val() converte gli oggetti in tipo double, analizzando anche i valori nulli (mentre in C# Convert.ToDouble() è utilizzata per convertire qualsiasi oggetto in un valore di tipo double, ma restituisce errore nel caso in cui il valore sia nullo).

Caratteristiche di C# non applicabili a Visual Basic .NET

  • Di default, le operazioni numeriche non sono controllare. Questo porta ad un codice leggermente più veloce, con il rischio che overflow numerici non vengano individuati. Ad ogni modo, il programmatore può definire operazioni aritmetiche per effettuare controlli dell’overflow. (In Visual Basic questo può essere fatto facendo il checking di un’opzione).
  • I cicli for possono contenere più condizioni, come ad esempio  for(int i = 0; i < 10 && somethingTrue; i++)
  • C# è case-sensitive.

Confronti sintattici

Visual Basic .NET termina un blocco di codice con l’istruzione  End BlockName  (o con l’istruzione  Next  nel caso di ciclo for), che sono più familiari a programmatori che hanno esperienza nell’utilizzo di T-SQL.In C#, le parentesi   {} vengono utilizzate per delimitare blocchi di codice, cosa che è più familiare ai programmatori con esperienza in diffusi linguaggi di programmazione come C++ e Java. In più, in C#, se un blocco consiste in una singola istruzione, le parentesi possono essere omesse.
C# è case-sensitive mentre Visual Basic. NET non lo è. Così, in C# è possibile avere due variabili con lo stesso nome, per esempio variable1 e Variable1.  Questo può causare problemi nella conversione di codici C# in linguaggi non case-sensitive, come Visual Basic, o in quelli non predisposti alla lettura di un linguaggio case-sensitive.


Parole chiave
Visual Basic e C# condividono la maggior parte delle parole chiave, con la differenza che le parole chiave di default di Visual Basic sono versioni in maiuscolo delle parole chiave in C#, come ad esempio  Public vs publicIf vs if. Alcune parole chiave che hanno versioni completamente diverse in Visual Basic e in C# sono:

  • Friend vs internal – modificatori di accesso che permettono referenze intra-classe 
  • Me vs this – un auto-riferimento all’istanza dell’oggetto corrente
  • MyBase vs base – per riferirsi alla classe base da cui la classe corrente deriva
  • NotInheritable vs sealed – per dichiarare le classi che potrebbero non essere ereditate
  • Shared vs static – per dichiarare metodi che non richiedono un’esplicita istanza di un oggetto.

Lascia un commento

Progetta un sito come questo con WordPress.com
Comincia ora