Confronto tra C# e altri linguaggi
Aggiornamento: novembre 2007
C# è un moderno linguaggio orientato a oggetti con molte caratteristiche e funzionalità in comune con altri linguaggi di programmazione .NET Framework. C# prevede solo circa 80 parole chiave, la maggior parte delle quali già nota a chiunque abbia utilizzato C, C++, Java o Visual Basic. Esistono alcune differenze di sintassi, ma in genere sono di minima entità.
L'apprendimento di C# è facilitato dall'ambiente di modifica Visual C# Express Edition basato sulla tecnologia IntelliSense, che consente di eseguire automaticamente la maggior parte delle operazioni. L'editor di C# sistema automaticamente il codice, suggerisce metodi e proprietà in base al contesto ed evidenzia i potenziali errori durante la digitazione.
Hello, World!
Per dare un'idea immediata dell'aspetto di un programma C#, di seguito è riportata l'applicazione "Hello, World!" in linguaggi diversi:
// C# Hello, World!
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
// C++ Hello, World!
#include <iostream>
using namespace std;
static int main()
{
cout << "Hello World!" << endl;
return 0;
}
' Visual Basic.NET Hello, World!
Module Module1
Sub Main()
Console.WriteLine("Hello, World!")
End Sub
End Module
// Java Hello, World!
class HelloWorldApp
{
public static void main(String[] args)
{
System.out.println("Hello, World!");
}
}
Per i programmatori esperti di altri linguaggi, nelle sezioni che seguono vengono evidenziate le differenze più importanti con C#.
C# rispetto a C e C++
La memoria viene gestita con un sistema di Garbage Collection. Non è disponibile alcun metodo di eliminazione per annullare una chiamata a new.
I file di intestazione (con estensione h) non vengono utilizzati e non sono richiesti. Le informazioni archiviate nei file di intestazione ora vengono archiviate in un assembly.
In un programma C# non è necessario aggiungere punti e virgola dopo la chiusura delle parentesi graffe in una definizione di classe.
Il metodo Main viene scritto con l'iniziale maiuscola ed è membro di una classe statica. Main restituisce int oppure void.
Ogni programma deve disporre di un metodo Main, altrimenti non verrà eseguita la compilazione.
L'istruzione break dell'istruzione switch non è facoltativa.
Le condizioni devono essere booleane.
I valori predefiniti vengono assegnati dal compilatore (null per i tipi di riferimento, 0 per i tipi di valore).
C# rispetto a Visual Basic
Vengono utilizzati i punti e virgola anziché le interruzioni di riga.
In C# viene applicata la distinzione tra maiuscole e minuscole, ad esempio il metodo Main è scritto con l'iniziale maiuscola.
Le condizioni devono essere booleane.
C# rispetto a Java
Il metodo Main è scritto con l'iniziale maiuscola.
Nelle conversioni boxing e unboxing tra tipi di valore e tipi di riferimento non è necessario creare tipi wrapper.
Una classe finale in Java corrisponde a una classe sealed in C#.
C# supporta le proprietà.
Per impostazione predefinita, i metodi C# sono non virtuali.
C# supporta attributi che consentono di includere informazioni aggiuntive per il compilatore.
Vedere anche
Attività
Procedura: generare un'applicazione C# in 60 secondi
Concetti
Funzionalità di Visual C# Express