Condividi tramite


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

C# e .NET Framework

Altre risorse

Visual C# Express

Guida introduttiva a Visual C# Express