Fondamenti di programmazione orientata agli oggetti
ITT Fauser — Classi quarte
Windows Forms, WPF, .NET MAUI
ASP.NET, Blazor
Unity (il motore di gioco più diffuso al mondo)
.NET MAUI, Xamarin
Azure, API REST
.NET nanoFramework
// Il classico "Hello, World!"
using System;
Console.WriteLine("Hello, World!");
C# è fortemente tipizzato: ogni variabile ha un tipo dichiarato.
| Tipo | Descrizione | Esempio |
|---|---|---|
| int | Numero intero (32 bit) | 42 |
| double | Numero decimale (64 bit) | 3.14 |
| bool | Valore booleano | true / false |
| char | Singolo carattere | 'A' |
| string | Stringa di testo | "ciao" |
int eta = 17;
double media = 7.5;
bool promosso = true;
string nome = "Marco";
Una costante non può essere modificata dopo la dichiarazione:
const double PI = 3.14159;
const int MAX_STUDENTI = 30;
Il compilatore deduce automaticamente il tipo dal valore assegnato:
var citta = "Torino"; // string
var numero = 42; // int
var prezzo = 9.99; // double
Console.WriteLine("Riga con a capo");
Console.Write("Senza a capo");
string nome = "Anna";
int eta = 17;
Console.WriteLine($"Mi chiamo {nome} e ho {eta} anni.");
Console.Write("Inserisci il tuo nome: ");
string input = Console.ReadLine();
Console.Write("Inserisci la tua età: ");
int eta = int.Parse(Console.ReadLine());
| + | Addizione |
| - | Sottrazione |
| * | Moltiplicazione |
| / | Divisione |
| % | Modulo (resto) |
| == | Uguale |
| != | Diverso |
| < > | Minore / Maggiore |
| <= >= | Minore o uguale / Maggiore o uguale |
| && | AND |
| || | OR |
| ! | NOT |
int voto = 7;
if (voto >= 6)
{
Console.WriteLine("Promosso!");
}
else
{
Console.WriteLine("Bocciato.");
}
int giorno = 3;
switch (giorno)
{
case 1:
Console.WriteLine("Lunedì");
break;
case 2:
Console.WriteLine("Martedì");
break;
default:
Console.WriteLine("Altro");
break;
}
for (int i = 0; i < 5; i++)
{
Console.WriteLine(i);
}
// Stampa: 0, 1, 2, 3, 4
int n = 0;
while (n < 3)
{
Console.WriteLine(n);
n++;
}
int x;
do
{
Console.Write("Numero: ");
x = int.Parse(
Console.ReadLine());
} while (x <= 0);
// Ripete finché x non è positivo
string[] nomi = {"Anna", "Luca"};
foreach (string n in nomi)
{
Console.WriteLine(n);
}
Un array è una struttura dati che contiene una sequenza di elementi dello stesso tipo e di dimensione fissa.
// Dichiarazione e inizializzazione
int[] voti = { 7, 8, 6, 9, 5 };
// Oppure: dichiarazione con dimensione
int[] numeri = new int[10];
// Accesso agli elementi (indice parte da 0!)
Console.WriteLine(voti[0]); // 7
Console.WriteLine(voti[4]); // 5
// Lunghezza dell'array
Console.WriteLine(voti.Length); // 5
// Scorrere un array
for (int i = 0; i < voti.Length; i++)
Console.WriteLine($"Voto {i}: {voti[i]}");
I metodi permettono di organizzare il codice in blocchi riutilizzabili.
// Metodo che ritorna un valore
int Somma(int a, int b)
{
return a + b;
}
// Metodo senza valore di ritorno (void)
void Saluta(string nome)
{
Console.WriteLine($"Ciao, {nome}!");
}
// Utilizzo della funzione
int risultato = Somma(3, 5); // 8
Saluta("Marco"); // "Ciao, Marco!"
| C# | Java | C++ | |
|---|---|---|---|
| Paradigma | OOP + funzionale | OOP | Multi-paradigma |
| Memoria | Garbage Collector | Garbage Collector | Manuale |
| Piattaforma | .NET (CLR) | JVM | Nativo |
| Compilazione | IL → JIT | Bytecode → JIT | Codice macchina |
| Puntatori | Solo in unsafe | No | Sì |
| Uso tipico | Desktop, web, giochi | Enterprise, Android | Sistemi, performance |
using System;
class CalcolaMedia
{
static double Media(int[] voti)
{
double somma = 0;
foreach (int v in voti)
somma += v;
return somma / voti.Length;
}
static void Main(string[] args)
{
Console.Write("Quanti voti? ");
int n = int.Parse(Console.ReadLine());
int[] voti = new int[n];
for (int i = 0; i < n; i++)
{
Console.Write($"Voto {i + 1}: ");
voti[i] = int.Parse(Console.ReadLine());
}
Console.WriteLine($"Media: {Media(voti):F2}");
}
}
Grazie per l'attenzione