C# aggiornamento entity

Novità C# 7.0 Accesso ai dati

Nella programmazione funzionale, ogni funziona implementa un’operazione per tutti i tipi di dato disponibile.

Questo tipo di approccio consente di centralizzare la gestione delle funzionalità, ma nel momento in cui si ha la necessità di aggiungere un nuovo tipo è necessario modificare tutte le funzioni per la sua gestione.

Il codice seguente è un esempio di programmazione funzionale:

La classe statica Operations contiene al suo interno il metodo FunctionalMethod è un extension method per l’interfaccia IWeapon e accetta come parametro un oggetto che implementa l’interfaccia IEnemy.  All’interno di FunctionalMethod viene analizzata l’istanza dell’oggetto che implementa IEnemy e vengono effettuata operazioni in base al tipo. Al crescere del numero di tipi da gestire (e delle istanze), la gestione del codice diventa sicuramente complessa.

Il Pattern matching

Una delle novità introdotte in C# 7.0 è il Pattern matching che consentono di semplificare di molto il codice precedente.

La sintassi è la seguente:

ed utilizza la keyword is per verificare se l’espressione espr è valida per il pattern indicato. E’ possibile la gestione di tre tipologie di pattern:

  • type pattern: consente di verificare se l’espressione può essere convertita nel tipo indicato e, nel caso fosse possibile, viene effettuata la conversione ed assegnata alla variabile indicata. La rappresentazione di questo tipo di pattern è la seguente:

Nell’esempio seguente viene verificata l’espressione obj cercando di convertirla in una variabile di tipo stringa denominata str. Se ciò è possibile viene stampato a video il suo valore.

  • costante: consente di verificare l’espressione con una costante. Il tipo di costante può essere null, un valore letterale, nome di una variabile const, o un enum.

  • var: è molto simile al type pattern, con la differenza che non viene indicato il tipo della variabile destinazione, ma una variabile di tipo var.

Dopo aver introdotto il Pattern matching riscriviamo l’extension method FunctionalMethod utilizzando il nuovo costrutto.

E’ evidente come il codice sia molto più compatto e soprattutto abbiamo aumentato la leggibilità. Proseguendo nella semplificazione del codice possiamo anche utilizzare lo statement switch :

Tuple

Alcune novità della versione di C# 7.0 riguarda le tuple che sono state trattate in questo precedente articolo.

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.