|
|
Pubblicato su 28/01/2019 16:03:40
|
|
|
|

1. Cosa è il generico?
I generici sono una nuova sintassi introdotta in C# 2.0, non zucchero sintassi, ma funzionalità fornite dagli aggiornamenti del framework nella 2.0.
Quando programmiamo programmi, spesso incontriamo moduli con funzioni molto simili, ma che gestiscono dati diversi. Ma non abbiamo altra scelta che scrivere più metodi separatamente per gestire diversi tipi di dati. Al momento, la domanda è: esiste un modo per usare lo stesso metodo per gestire diversi tipi di parametri? L'emergere dei generici è specificamente progettato per risolvere questo problema.
2. Perché usare i generici
Diamo un'occhiata al seguente esempio:
Risultato:
Dai risultati sopra possiamo vedere che questi tre metodi hanno le stesse funzioni tranne che per i diversi parametri che passano. Al momento della versione 1.0, non esisteva il concetto di generici, quindi cosa fare. Credo che molte persone penseranno all'eredità di una delle tre principali caratteristiche della POO: sappiamo che in C#, object è la classe base di tutti i tipi, e il codice sopra è ottimizzato come segue:
Risultato:
Dai risultati sopra descritti, possiamo vedere che l'uso del tipo Oggetto soddisfa i nostri requisiti e risolve la riutilizzabilità del codice. Alcuni potrebbero chiedersi perché sia possibile passare int, string, ecc. quando è definito come tipo oggetto? Ci sono due motivi:
1. Il tipo oggetto è la classe genitore di tutti i tipi.
2. Per ereditarietà, le sottoclassi hanno tutti gli attributi e i comportamenti della classe genitore, e ovunque appaia la classe genitore, essa può essere sostituita da sottoclassi.
Ma il metodo del tipo di oggetto sopra portato a un altro problema: il boxing e lo unboxing possono ridurre le prestazioni del programma.
Microsoft ha introdotto i generici in C# 2.0, che possono risolvere molto bene i problemi sopra menzionati.
3. Parametri generici di tipo
In una definizione generica di tipo o metodo, un parametro di tipo è un segnaposto specificato dal client per un tipo specifico quando istanza una variabile del tipo generico. La classe generica (GenericList<T>) non può essere usata così com'è perché non è un vero tipo; È più come un progetto per i tipi. Per utilizzare <T>GenericList, il codice client deve dichiarare e istanziare un tipo di costrutto specificando il parametro di tipo all'interno di parentesi angolari. L'argomento di tipo per questa particolare classe può essere qualsiasi tipo che il compilatore riconosca. Puoi creare qualsiasi numero di istanze di tipo costrutto, ognuna con un parametro di tipo diverso.
Il codice nell'esempio sopra può essere modificato come segue:
Chiamata:
Mostra i risultati:
|
Precedente:Provider File Core .NETProssimo:Nome database MySQL, nome della tabella e nome del campo
|