C# Flashcards

1
Q

Cosa è la classificazione?

A

Basandoci su alcune caratteristiche quali proprietà e funzioni possiamo assegnare un concetto ad un oggetto.

  • Es: se un oggetto ha la funzione di chiamare e di leggere dei messaggi possiamo dire che è un telefono.
  • La classificazione è il tipo di astrazione che noi facciamo per assegnare un oggetto a un tipo di concetto.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cosa è una classe?

A

La classe è un modello per la creazione di istanze composto da metodi e attributi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cosa L’ incapsulamento?

A
  • E’ buona norma che i metodi e attributi vengano resi PRIVATI diventando non utilizzabili da parte di oggetti di altre classi
  • Mentre quelli che riguardano INTERFACCIA possono essere PUBBLICI
  • Concetto di auto, dove i pedali, volante è pubblico invece il resto l’accesso al motore è privato.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cosa è L’ Ereditarietà?

A

una classe derivata grazie all’ ereditarietà può utilizzare i membri e gli attributi della superclasse da cui deriva.

Non supporta l’ereditarietà multipla

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cosa è la composizione?

A
  • Gerarchia tipica di una composizione esempio auto ha una portiere un volante e un motore
  • La gerarchia di composizione NON COMPORTA IN ALCUN MODO ALL’ EREDITARIETA’
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Parlami della gestione della memoria di runtime

A

Ogni volta che un programma di c# va in esecuzione l’ ambiente di runtime prepara due aree distinte di memoria lo Steak e lo Heap che hanno scopi e criteri di gestione molto differenti!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cosa è lo Steak nella gestione di memoria del runtime?

A

Viene usato per tenere traccia del flusso di esecuzione del programma.

  • Ogni volta che viene invocato un metodo, il runtime crea un contenitore che viene chaiamato frame che serve a contenere le definizioni e i valori delle variabili locali del metodo corrente oltre al valore di tutti i parametri.
  • Funziona come una pila di piatti.
  • E’ una memoria di tipo LFO last in, first out.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cos’ è lo Heap nella gestione della memoria del runtime?

A

Lo Heap è un deposito di memoria che il runtime deposita per un certo tempo durante l’esecuzione del programma.

  • Vengono salvati valori di tipo reference type
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Che differenza c’è tra Value Type e Reference Type?

A
  • I Value Type memorizza il proprio valore asseme alla variabile (x=10), e sono INT, DOUBLE, FLOAT, ecc..
  • I Reference Type : il valore associato a una variabile di tipo stringa ad esempio,non sarà il valore vero e proprio ma sarà un riferimento a dove si trova il valore e viene SEMPRE memorizzato nello Heap. Gli array sono Reference type anche se numerici.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Parlami dei modificatori di Accesso

(Private, Pubblic, Internal, Static)!

A

PRIVATE

  • è utilizzabile solo all’interno della classe in cui è stata definità!
  • Qualunque altra classe non potrà accedere a questa variabile.
  • Scrivere private o meno per dafult è private

PUBLIC

  • Può essere utilizzata anche all’esterno della propria classe.
  • Rendere pubblica una variabile di istanza infrange la regola dell’incapsulamento
  • Di fatto sono i metodi ad essere pubblici mentre le variabili di istanza privata.

INTERNAL

  • é una forma intermedia di accesso tra pubblic e private.
  • Può essere utilizzato dalle classi e dai membri delle classi
  • è il livello di accessibilità standard delle classi scriverlo o non scriverlo non cambia
  • Gli oggetti della classe possono essere istanziati solamente all’ interno dell’ assembly nella quale è stata definita.

STATIC

  • Se un membro di una classe viene dichiarato static significa che NON PUO’ essere istanziato ma è comunque utilizzabile direttamente sulla classe
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

A cosa servono i costruttori?

A
  • Un costruttore serve per costruire un’ istanza di una classe.
  • ha SEMPRE lo stesso nome della classe ed è un requisito obbligatorio.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

La keyword THIS cosa rappresenta all’ interno del costruttore?

A

La Keyword THIS rappresenta l’istanza corrente sulla quale noi stiamo eseguendo il costruttore.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cosa sono le property?

A
  • Le property sono un modo piu compatto ed elgante per gestire i metodi Getter e Setter
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cosa sono le Struct?

A
  • Le struct sono Value Types
  • Sono un modo per creare i nostri tipi di dato
  • NON possono definire un costruttore e quindi non possono essere istanziate
  • NON supportano l’ereditarietà
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Cosa sono gli Enum?

A
  • I tipi Enum sono utili quando una variabile di un programma può assumere solo un insieme di valori predefiniti.
  • Esempio: i punti cardinali Nord, Sud, Ovest, Est.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cosa è il Polimorfismo(Override)?

A
  • A partire da una classe base, è possibile creare delle classi derivate che fanno tutte la stessa cosa ma ognuno la fa a modo suo.
17
Q

Cosa sono le Interfacce?

A
  • Un’ interfaccia definisce un inseme di metodi astratti che se implementate siamo obbligati ad usare
  • Tipo Reference Type
  • Una classe può implementare più interfacce.
18
Q

Cosa è un Namespace?

A
  • Una collezione di nomi, un raggruppamento di tipi come classi, struct, interface.
  • Come una sorta di armadio con i suoi cassetti e sottocassetti dove andiamo ad inserire delle classi che sono omogenee tra loro.
19
Q

Cosa sono le Eccezioni?

A

Sono il meccanismo principale che il linguaggio ci mette a disposizione per gestire correttamente tutta una serie di condizioni di errore.

Try

// possono lanciare delle eccezioni

Catch

// catturiamo l’eccezione

Finally

// istruzioni da eseguire comunque

  • Le eventuali finally> vengono eseguite sempre, anche in presenza di un return del blocco try o catch.
  • Il blocco finally può contenere delle istruzioni che chiudono dei files oppure rilasciano delle risorse, per garantire la consistenza dello stato.
20
Q

Cosa sono i Generics?

A
  • è possibile che definire sia per i tipi che per i metodi dei parametri di tipo.
21
Q

Cosa sono i Delegate?

A
  • Consente di trattare i metodi come se fossero però oggetti a se stanti
  • Possiamo dichiarare dei metodi che hanno nome diverso ma DEVONO avere la stessa firma.
22
Q

Cosa sono gli Eventi?

A
  • Permettono alle classi che noi progettiamo di notificare l’ accadere di specifici eventi, come ad esempio il cambiamento di valore di una proprietà.
  • Emitter emettitori di eventi o come pubblicatori di eventi
  • Listener classi che sono interessate a ricevere gli eventi delle classi che le emettono