back to top

Costrutti di base C#

Per prima cosa osserviamo il codice sorgente del file Program.cs che abbiamo creato, mediante SharpDevelop, alla lezione precedente. L’analisi di questo primo blocco di codice ci aiuterà a capire come funziona C# e come è possibile scrivere dei programmi in questo linguaggio di programmazione.

Questo il codice del file in questione:

Pubblicitร 
using System;

namespace test1
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            
            // TODO: Implement Functionality Here
            
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

Per spiegare com’è strutturato questo file partiremo da un’analisi dei suoi componenti partendo, come è logico che sia, dalla prima riga di codice, cioè:

using System;

Questa istruzione è utilizzata per importare, all’interno del nostro programma, tutte le funzionalità disponibili all’interno del namespace System (all’interno di questo namespace possiamo trovare altri namespace come, ad esempio, il namespace System.Net che include classi e funzioni relative alla gestione delle reti, ecc.).

Nel nostro esempio, l’aver incluso in namespace System fa sì di poter accede più velocemente a determinati medoti come Console.WriteLine. Se non avessimo incluso il namespace in questione, invece, avremmo dovuto scrivere:

System.Console.WriteLine("Hello World!");

Il successivo blocco di codice è il seguente:

namespace test1
{

}

Per il momento tralasciamo ciò che è definito all’interno delle parentesi graffe. Quello che abbiamo fatto, con questa sintassi, è definire un nostro namespace di nome "test1". In pratica abbiamo creato una specie di "grosso raccoglitore" al cui interno definiremo le classi che comporranno il nostro programma. Quindi all’interno dei namespace ci sono le classi che, come molti di voi sapranno già, sono un "insieme di variabili e funzioni" che possono essere usate in qualunque parte del nostro programma.

All’interno di questo blocco, infatti, abbiamo definito la nostra prima (ed unica) classe:

class Program
{

}

Al cui interno abbiamo definito la nostra funzione d’ingresso Main in questo modo:

public static void Main(string[] args) {

}

Questa è la funzione principale che viene lanciata prima di tutte le altre all’interno del nostro programma. Si noti che la parola "Main" è preceduta dalla parola chiave void il che sta a significare che la funzione non deve restituire niente (infatti al suo interno non presente alcun Return). E’ anche possibile, comunque, sostituire il void con int, ma in quest’ultimo caso saremo costretti a restituire un valore numerico (ad esempio 0).

Subito dopo "Main" troviamo delle parentei tonde al cui interno troviamo gli argomenti che vengono passati quando l’utente lancia l’eseguibile. La variabile "args", infatti, non è altro che un array che contiene tutti gli argomenti che vengono passati alla funzione. Se ad esempio lanciate da console il vostro programma scrivendo:

test1.exe mioargomento

all’interno della variabile args, troveremo tale parametro.

Vediamo ora il contenuto della funzione Main, cioè le sitruzioni che si trovano all’iterno delle parentesi graffe:

Console.WriteLine("Hello World!");
            
// TODO: Implement Functionality Here
            
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);

Nel nostro esempio si tratta, semplicemente, di scrivere qualcosa all’interno della finestra del terminale dell’utente. Per farlo abbiamo utilizzato il metodo Console.Writeline per stampare a video la frase "Hello World!" e andare a capo. Successivamente troviamo un semplice commento, cioè una riga di testo che non verrà elaborata in fase di compilazione del programma. Più sotto ancora troviamo il metodo Console.Write con il quale stampiamo a video la frase "Press any key to continue . . . ".

L’ultima istruzione di Main consiste nel metodo Console.ReadKey che viene utilizzato per ricevere un input dall’utente mediante la tastiera (il sistema rileva la pressione di un tasto).

Considerazioni generali sul codice in C#

E’ bene sottolineare fin da subito che C# è un linguaggio Case Sensitive. Questo significa che scrivere, ad esempio, console.writeLine invece di Console.WriteLine è un errore.

Sempre relativamente all’esempio sopra possiamo notare che è presente un commento. Per inserire commenti in C# basta usare il doppio slash // come nell’esempio:

// sono un commento

Il commento deve essere su un’unica linea. Se, invece, si vuole inserire commenti su più linee sarà sufficiente racchiuderli tra /* e */ in questo modo:

/* Sono un commento
scritto su più linee... */

proprio come si fa in C o in PHP.

Pubblicitร