# C sharp/Introduzione

C sharp
Copertina Tutti i moduli · Sviluppo
    CopertinaC sharp/Copertina
* IntroduzioneC sharp/Introduzione
* Basi del linguaggio
** SintassiC sharp/Sintassi
** VariabiliC sharp/Variabili
** OperatoriC sharp/Operatori
** Strutture dati
** Strutture di controlloC sharp/Strutture di controllo
** Funzioni
** Delegati ed eventiC sharp/Delegati ed eventi
** Eccezioni
* Classi e oggetti
** ClassiC sharp/Classi
** Oggetti
** Namespace
* Il framework .NET
** Introduzione al frameworkC sharp/Ambiente di sviluppo
** Applicazioni per la console
** Applicazioni grafiche per Windows
* Visual C sharp
Modifica il sommario
Il linguaggio C# (pronunciato "see sharp") è un linguaggio di programmazione general-purpose, ovvero non ideato per un utilizzo in un ambito specifico ma per gestire diversi tipi di applicazioni (da applicazioni web ad applicazioni a finestre ad applicazioni a console).

## Caratteristiche

Il linguaggio è molto simile al Java, orientato agli oggetti, con una grande disponibilità di classi, supporto della gestione degli errori, e altro ancora. Queste caratteristiche, combinate con la disponibilità di potenti strumenti di sviluppo e il supporto multi piattaforma, rendono il C# una buona scelta per progetti di sviluppo software di vario tipo: progetti RAD, sviluppati individualmente o da team, applicazioni per Internet, ecc...
Una larga parte delle potenzialità del C# (come per altri linguaggi .NET) provengono dalle API del framework .NET, che forniscono un'ampia gamma di classi, a partire da quelle per la gestione della grafica e la creazione di applicazioni Windows fino a quelle per per i socket TCP/IP. Gli sviluppatori possono quindi scrivere una parte dell'applicazione in C# e un'altra parte in un altro linguaggio .NET (esempio VB .NET), usando gli stessi strumenti e le stesse librerie, dovendo così imparare del nuovo linguaggio solo la sintassi.
Grazie alla somiglianza tra C# e linguaggi C-like, come il Java, un programmatore che abbia già conoscenza di linguaggi orientati agli oggetti troveranno la sintassi del C# molto intuitiva.

## Storia

Il linguaggio fu inizialmente sviluppato dalla Microsoft con il nome di J++ come rivale del Java. Fu poi rinominato in C#, nome in codice "Cool". Nel 2000 è diventato una specifica ECMA.

## Ottenere un compilatore

Per creare le tue applicazioni C#, si deve disporre di un compilatore (che converta cioè il linguaggio C# in un programma eseguibile), e bisogna avere installato sul tuo PC il framework .NET.
Ci sono due framework .NET disponibili, Microsoft e Mono:

### Microsoft

    Per Windows, il framework .NET SDK può essere scaricato dal .NET Framework Developer Center della Microsoft. Se la cartella di default di Windows (dove è installato WinNT) è C:\WINDOWS, l'installazione del Framework .NET SDK installa il compilatore di Visual C# .NET (csc) nella cartella C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705 per la versione 1.0, nella cartella C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 per la versione 1.1, o nella cartella C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 per la versione 2.0.

### Mono

    Per Window, Linux e altri sistemi operativi, può essere scaricato dal sito di Mono.
    Per Linux, un buon compilatore è cscc che può essere scaricato dal progetto DotGNU Portable.Net. I programmi compilati possono essere eseguiti con ilrun
Per scrivere codice C#.NET, ci sono molti editor disponibili. È possibile scrivere il codice con un semplice editor di testo e poi compilarlo manualmente, oppure usare strumenti che semplificano queste ed altre operazioni.
Microsoft offre un'ampia gamma di editor che fanno parte della suite "Visual Studio", che hanno funzionalità come l'evidenziazione del codice, l'auto-completamento o il debugging. Può essere ad esempio una possibilità quella di scaricare Visual C# Express, scaricabile gratuitamente dal sito della Microsoft all'indirizzo www.microsoft.com/express/vcsharp. Il pacchetto contiene sia il framework .NET (versione 3.5) sia Visual Studio (un potente IDE) sia il compilatore C# vero e proprio.

## Il nostro primo programma

Vediamo ora un semplice programma che stampa sullo schermo la scritta "Hello, world!":
Analizziamo le righe una dopo l'altra:
* la prima riga può essere considerata come l'"intestazione" del programma. Per ora infatti non ci interessa sapere a cosa serve esattamente, lo vedremo più avanti
* le parentesi graffe () delimitano dei blocchi di istruzioni. Nel caso delle parentesi che si aprono alla seconda riga e si chiudono all'ultima, delimitano il programma vero e proprio
* la terza riga definisce la porzione principale del programma, ovvero quella che verrà eseguita per prima. Possono esistere infatti diversi blocchi in uno stesso programma, ma il primo ad essere eseguito sarà quello chiamato "Main". Le parole static e void saranno analizzate in seguito
* la quinta riga stampa sullo schermo il testo "Hello, world!". System.Console sono dei riferimenti alla libreria di sistema del framework .NET; WriteLine è un metodo della console. Notare che ogni istruzione termina con punto e virgola
* la riga successiva legge dall'utente del testo. In realtà non fa nulla, in quanto il testo letto non viene salvato o usato da nessuna parte. È solo un espediente per evitare che il programma si chiuda senza che l'utente possa vederne i risultati: l'istruzione infatti blocca l'esecuzione fino a quando l'utente non digita invio. Infatti, quando il programma è concluso, la console si chiude.