Lezione sulla Programmazione e Errori

Oct 8, 2024

Appunti della Lezione

Introduzione

  • La docente chiede aiuto per chiarire argomenti già trattati.
  • Riepilogo delle slide e dei temi da trattare.

Argomenti Trattati

Statement e Costrutti di Controllo

  • Abbiamo già visto gli statement, in particolare foreach e switch.
  • Non abbiamo trattato goto e using.

Modificatori di Accesso

  • Pubblico: visibile a tutti.
  • Internal: visibile all'interno dello stesso assembly.
  • Protected: visibile solo nelle classi e sottoclassi.
  • Private Protected: visibile solo nella classe o nella sottoclasse nello stesso assembly.
  • Importante: un campo privato può essere modificato da qualsiasi oggetto della stessa classe.

Array

  • Gli array non possono cambiare dimensione durante la loro vita.
  • Il docente sottolinea l'importanza di questa informazione, che ha causato difficoltà agli studenti dell'anno precedente.

Metodi Locali

  • Non abbiamo parlato dei metodi locali; si discuterà in seguito.
  • Importanza di definire la visibilità dei metodi ausiliari (privati se usati solo internamente).

Gestione degli Errori

Eccezioni

  • Le eccezioni sono gestite come in Java: si sollevano e si catturano.
  • Importante: i catch vanno in ordine crescente di tipo.
  • Utilizzo di inner exceptions per passare informazioni sulle eccezioni originali.

Buone Pratiche

  • Non usare messaggi d'errore come meccanismo di comunicazione tra il codice.
  • Usare i tipi di eccezione per indirizzare il flusso logico del codice.

Metodi Ausiliari

  • La regola per la visibilità è "il meno possibile".
  • I metodi ausiliari dovrebbero avere visibilità limitata per migliorare la manutenibilità del codice.

Costanti

  • In Java, si usano final static per le costanti. In C#:
    • Read-only: simile a final, ma l'oggetto esiste.
    • Const: utilizzato solo con valori noti a tempo di compilazione.

Esercizi di Debugging

  • Uso del debugger per monitorare le variabili e il flusso del programma.
  • Importanza di cambiare i valori delle variabili durante il debug per testare diversi scenari.

Conclusione

  • Molti argomenti ancora da trattare, e si passerà a un nuovo argomento.
  • Importanza di memorizzare i concetti chiave per applicarli nella programmazione.