Prima di entrare nel vivo della programmazione C#, cerchiamo adesso di prendere un po’ di confidenza con il linguaggio. Scriveremo un piccolissimo programma che ormai fa parte della storia
della teoria della programmazione a prescindere dal linguaggio che si
vuole studiare.
A questo punto, copiate il codice senza i numeri di riga nel Blocco Note e salvatelo in una directory di facile accesso, per esempio, c:\esempi. Non dimenticatevi che si tratta di un file che contiene codice C# e deve avere l’estensione .cs . Chiamatelo CiaoProf.cs . Il primo passo è fatto. Ora bisogna compilarlo per renderlo eseguibile. Dal Prompt dei comandi, portatevi nella directory in cui si trova il sorgente che avete appena salvato e digitate il seguente comando: csc CiaoProf.cs e se non avete commesso errori, comparirà un messaggio che riguarda il framework (vedremo poi come eliminarlo) e il Prompt. Ora che il programma è compilato, lo eseguiamo digitando il nome del programma. In figura 1 è riassunta l’esatta sequenza dei comandi: Fig. 1 Come avete notato, il programma esegue semplicemente la visualizzazione di un messaggio di benvenuto. E’ arrivato il momento di dare un’occhiata al codice che abbiamo scritto, dandone per quanto possibile una spiegazione chiara delle singole istruzioni tenendo presente che, alcune di esse, introducono argomenti di una certa complessità e che è prematuro parlarne in queste prime lezioni. Il codice. Riga numero 1 using System; è una direttiva che introduce un concetto importante nella programmazione orientata agli oggetti: i namespace (spazio dei nomi). I namespace sono una raccolta di oggetti (classi) da includere nel nostro codice appunto dichiarandoli con la direttiva using. Nel nostro caso facciamo riferimento al namespace che si chiama System. Tale namespace ci consente di utilizzare l’oggetto Console richiamandone una sua funzione (metodo) che ci permette di effettuare la stampa su monitor del nostro messaggio: il metodo è WriteLine(..). Avremo tempo e modo di parlare di oggetti, classi e metodi. Riga numero 2 e numero 8 // inizio non sono istruzioni ma commenti. I commenti sono utilizzati in genere come una descrizione delle funzionalità di una istruzione, di un intero blocco di codice o come informazioni sull’autore del programma. Insomma tutto ciò che serve per informazioni e/o descrizioni, va inserito in un commento. Il compilatore all’atto della generazione del codice eseguibile, ignora i commenti lavorando solo sul codice, diciamo così, "attivo". In C# sono supportati due tipi di commenti, ovvero commenti a riga singola e commenti delimitati. I commenti a riga singola iniziano con i caratteri // e si estendono fino alla fine della riga. I commenti delimitati iniziano con i caratteri /* e terminano con i caratteri */. I commenti di quest'ultimo tipo possono estendersi su più righe, per esempio: /* Infine esiste in C# un altro tipo di commento delimitato da ///, ma sono destinati alla generazione di report XML. Non ne faremo uso per il momento. Riga numero 3 public class CiaoProf definisce il contenitore del codice del nostro programma. Per il momento basta solo dire che questo contenitore è una classe, che si chiama CiaoProf e che l’intero codice è delimitato da una coppia di parentesi graffe. Riga numero 5 public static void Main() Il computer, a questo punto, ha bisogno di sapere dove iniziare la sua elaborazione. Ed è proprio in questa riga che il programma inizia. Tutti i programmi C# iniziano l’esecuzione con questo costrutto. Si tratta di un metodo cioè una funzione che viene richiamata all’inizio. Una funzione è una pozione di codice che viene richiamato tramite il suo nome. In questo caso la funzione chiamata è Main. Il metodo Main è il punto di ingresso del programma, ovvero il punto in cui il controllo del programma inizia e termina. Anche il codice del metodo Main è delimitato sempre da una coppia di parentesi graffe. All’interno di questo metodo, troviamo le uniche vere istruzioni di tutto il programma. Tutte le istruzioni devono terminare con un punto e virgola ; che segnala la fine dell’istruzione stessa. Riga numero 7 Console.WriteLine("Ciao Prof., benvenuti in Docenti.org"); Questa istruzione, come penso sia intuibile, visualizza il messaggio. Esso è contenuto tra i doppi apici e a sua volta contenuto tra una coppia di parentesi tonde: Ciao Prof., benvenuti in Docenti.org Il costrutto è composto da un oggetto che si chiama Console seguito dalla chiamata ad un metodo (funzione) che si chiama WriteLine(..) . Questo metodo è parametrizzato, cioè, viene richiamato passandogli un parametro che è una stringa di caratteri che abbiamo intenzione di visualizzare sullo schermo. Ha inoltre la funzionalità di andare a capo dopo aver visualizzato il messaggio. L’oggetto Console fa parte di un insieme di tanti oggetti (classi) contenuti nel namespace System. Ecco perché all’inizio del sorgente è stata utilizzata la direttiva using. In pratica abbiamo informato il compilatore l’intenzione di utilizzare gli oggetti contenuti in quel namespace, nel caso specifico, l’oggetto Console. Questa è la definizione tecnica dell’oggetto Console: "La classe Console fornisce il supporto di base per le applicazioni in grado di leggere e scrivere i caratteri da e sulla console. Se la console non esiste, come nelle applicazioni basate su Windows, i caratteri sulla console non sono visualizzati e non vengono generate eccezioni… " Riga numero 9 Console.ReadLine(); Questa istruzione è l’opposto dell’istruzione WriteLine(..) che stampa sul video. ReadLine() invece attende che venga digitato un carattere da tastiera. Nel programmino CiaoProf lo abbiamo utilizzato per non far terminare il programma nel senso che non termina fino a quando non viene digitato un carattere (o una serie di caratteri). Anche questa istruzione è un metodo (funzione) che fa parte dell’oggetto Console. Per il momento terminiamo qui la sua descrizione perché avremo modo di usarla spesso nei nostri programmi. Le ultime due righe di codice rappresentano la chiusura dei blocchi di codice rispettivamente del metodo Main e del programma, delimitati dalle parentesi graffe chiuse. |