Sintassi base e struttura di un programma 1. Struttura di un programma Un programma C# è composta...
-
Upload
osvaldo-sole -
Category
Documents
-
view
212 -
download
0
Transcript of Sintassi base e struttura di un programma 1. Struttura di un programma Un programma C# è composta...
1
Sintassi base e struttura di un programma
2
Struttura di un programma• Un programma C# è composta da uno o più file (*.cs)
• Ogni file contiene uno o più namespace
• Namespace– Contiene tipi e/o altri namespace– Definisce lo scope dei tipi che contiene– Permette di raggruppare il codice secondo criteri semantici
• Tipi– Class, Struct, Interface, Enum,Delegate
3
4
Sintassi• Sintassi
– Simile al C/C++– Case sensitive– Punto e virgola “;” per terminare righe logiche– Parentesi graffe {} per racchiudere blocchi di codice– Commenti in stile C++, Java
• // commento di una linea• /* commento di una o più linee */
– Codifica UNICODE• Sia per il codice sorgente che per le stringhe ed i caratteri all’interno del
programma– Spazi bianchi privi di significato: sequenze di spazi, tab, interruzioni di linea
5
Variabili e Tipi• Ogni variabile deve essere di un tipo dichiarato
• Possibli tipi:– Tipi predefiniti (Es, int, char)– Tipi definiti dall’utente (mediante class, struct)– Sistema dei tipi unificato: tutto deriva dalla classe Object
• Inizializzaione di una variabile
tipo nome_variabile [= espressione];
6
• La variabili devono essere inizializzate o deve essergli assegnato un valore prima del loro primo utilizzo
int s = 0; //inizializzazione, dichiarazione + assegnazione
string nome; // dichiarazione senza assegnazione
float miofloat = 0.5f; //inizializzazione, dichiarazione + assegnazione
bool hotOrNot = true; //inizializzazione, dichiarazione + assegnazio
• Il valore delle costanti non può essere modificato
const int variabileCostante= 32;
7
Tipi: value e reference types
• Netta distinzione fra– Value types
• Contengono direttamente il valore del dato• Non possono essere null (Eccezione Nullable Types)• L’assegnazione di una variabile ad un’altra provoca la copia del valore
contenuto nella variabile
– Reference Types• Contengono un riferimento al valore del dato• Possono essere null• L’assegnazione di una variabile ad un’altra provoca la copia del riferimento al
valore e non del valore stesso (entrambe le variabili fanno quindi riferimento allo stesso dato)
8
• La distinzione tra Value Type e Reference Type è predefinita in base al tipo e non modificabile dal programmatore
• Value Type– Allocati nello Stack (a meno che non siano membri di una classe)– Non necessitano di Garbage Collection
• Reference Type– Fanno riferimento a oggetti allocati dinamicamente nello heap – Tali oggetto sono soggetti al Garbage Collection
int i = 123;string s = "Hello world";
i
s
123
"Hello world"
9
10
Tipi predefiniti