Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Template
using System;
namespace Test
{
class program
{
static void Main(string[] args)
{
//codice qui
}
}
}
sintassi:
commenti
sono preceduti da //
oppure con:
/*
*
* commento qui
*
*/
comandi:
Console.Write
Console.Write("Hello world");
Console.Write("deez");
output
Hello worlddeez
Console.WriteLine
Console.WriteLine("Hello world");
Console.WriteLine("deez");
ouput
Hello world
deez
comandi utili
es:
Console.WriteLine("/t deez");
output
deez
es:
Console.WriteLine("deez /b nuts");
output
deenuts
es
int età = 15;
Console.WriteLine("hai " + età + " anni");
output
hai 15 anni
Console.beep();
Console.ReadKey();
Variabili
ci sono 2 fasi:
declaration and inizialization
int x = 22;
operazioni
+ addizione
- sottrazione
* moltiplicazione
/ divisione
+= aumenta di ...
++ aumenta di 1
-= diminuisce di ...
-- diminuisce di 1
*= moltiplica di ...
/= divide di...
% guarda il resto di una divisione
Math.
type casting
es:
double a = 3.14;
int b = Convert.ToInt32(a)
b sarà uguale a 3
.GetType()
int a = 3;
Console.WriteLine(a.GetType());
prendere Input
Console.ReadLine();
es:
exeption
( numeri interi )
( numeri decimali )
Strings Methods
nomeStringa.Insert(posizione,"scritta")
nomeStringa.Substring(posizione,numeroCaratteri)
if statement
struttura:
if(condizione)
{
}
else if
{
}
else
{
comparatori
== uguale
< minore
> maggiore
<= minore o uguale
>= maggiore o uguale
!= non uguale
switch
struttura:
switch(dato)
{
case "deez":
//code
break;
case "nuts":
//code2
break;
}
default:
//code
break;
operatori logici
|| <--- or, o
es:
while loop
struttura:
while (condizione)
{
//code
}
for loop
struttura:
arrays (lista)
sono variabili che possono contenere un numero definito di valori dello stesso tipo
es:
String oggetti = new string [5] <--- 5 = numero di dati che si possono inserire
foreach loop
struttura:
ouput:
BMW
Tesla
Methods (funzioni)
struttura
per usare return, dobbiamo sostituire void con il tipo di variabile che è z
method overloading
due funzioni possono avere lo stesso nome, a patto che abbiano diversi parametri
funzione = nome
int x, int y = parametri
params keyword
la funzione può accettare un numero variabile di dati, a patto che siano tutti
dello stesso tipo
exception handling
se una parte di codice potrebbe dare qualche errore, come chiedere per un int ma
gli viene dato una string, invece di fermare il programma, possiamo prendere
l'errore senza far fermare il programma
struttura:
try
{
//codice pericoloso
}
catch(FormatException e)
{
//codice eseguito se si verifica l'errore specificato nella condizione
}
finally
{
//codice che si esegue sia se l'errore si verifichi o meno.
}
possiamo mettere più catch, e con Exception, possiamo prendere ogni errore che si
verifica, senza sapere della sua natura.
conditional operator
formula:
(condizione) ? x : y
string interpolation
output:
multidimensional arrays
parcheggio [1,0]
classes
object
struttura:
il nome è a scelta
constructor
serve per automaticamente assegnare caratteristiche a un oggetto senza
doverle assegnare manualmente
struttura
( nella classe )
public ( modifier )
static ( modifier )
overloaded constructor
metodo per creare più constructor, con lo stesso nome, a patto che richiedano
parametri diversi.
inheritance
classi possono avere " sottoclassi ", cioè classi che ereditano le caratteristiche
e metodi della classe iniziale.
struttura:
abstract ( modifier )
in una classe, indica che è incompleta, e quindi non si possono creare oggetti da
quella classe
struttura:
array of objects
oppure:
nomeArray[numeroSlot]
objects as arguments
struttura
se bisogna creare una funzione che deve ritornare ( return ) l'oggetto, al posto di
"void" si mette il nome della classe di appartenenza dell'oggetto
esempio:
nomeFunzione(nomeOggetto);
method overriding
permette a una sottoclasse di avere uno stesso metodo con nome uguale a quello
ereditato, ma che faccia cose diverse.
ci sono 2 modi:
es:
es:
class classeMadre
{
public virtual void Metodo()
{
// codice qui
}
}
ToString method
es:
class nomeClasse
{
String dato = "DeezNuts"
polimorphism
per esempio, possiamo mettere in un array una serie di oggetti che stanno in delle
sottoclassi diverse, ma che hanno una classe in comune da cui hanno ereditato
es:
interface
interface cosa1
{
void funzione1();
}
per attaccare un interfaccia a una classe si fa come attaccare una classe a una
sottoclasse
list
simile ad un array di oggetti, ma la differenza è che una list può avere un numero
massimo di dati/oggetti illimitato, invece a quello limitato degli array
struttura:
using System.Collections.Generic;
aggiungere dati:
nomeList.Add(dato);
rimuovere dati:
nomeList.Remove(dato);
nomeList.IndexOf(dato);
nomeList.LastIndexOf(dato);
nomeList.Contains(dato);
nomeList.Sort();
nomeList.Reverse();
ripulire la list:
nomeList.Clear();
aggiungere oggetti:
NomeList.Add(nomeOggetto.nomeCaratteristica);
oppure
oppure