C # generice
Generic înseamnă forma generală, nu specifică. În c#, generic înseamnă nu specifice pentru un anumit tip de date.
C # vă permite să definiți clase generice, interfețe, clase abstracte,câmpuri, metode, metode statice, proprietăți, evenimente, delegați și operatori folosind parametrul type și fără tipul de date specific. Un parametru de tip este un substituent pentru un anumit tip specificat la crearea unei instanțe de tip generic.
Un tip generic este declarat prin specificarea unui parametru de tip într-o paranteză unghiulară după un nume de tip, de ex., TypeName<T>
unde T
este un parametru de tip.
clasa generică
clasele generice sunt definite folosind un parametru de tip între paranteze unghiulare după numele clasei. Următoarele definește o clasă generică.
mai Sus, DataStore
este o clasă generică., T
este numit parametru de tip, care poate fi folosit ca un tip de câmpuri, proprietăți, metode parametri, tipuri de returnare, și delegați în DataStore
clasa. De exemplu, Data
este generic proprietate, deoarece am folosit un parametru de tip T
ca tip, în loc să specifice tipul de date.
T
ca parametru de tip. Puteți da orice nume unui parametru de tip., În general, T
este utilizat atunci când există un singur parametru de tip. Este recomandat să utilizați o mai ușor de citit tip parametru numele ca pe cerința ca TSession
, TKey
, TValue
etc. Aflați mai multe despre instrucțiunile de denumire a parametrilor de tip de asemenea, puteți defini mai mulți parametri de tip separați prin virgulă.
instanțierea clasei generice
puteți crea o instanță de clase generice specificând un tip real în paranteze unghiulare., Următoarele creează o instanță a clasei generice DataStore
.
de mai Sus, am specificat string
tip în paranteze unghiulare în timp ce crearea unui exemplu. Deci, T
va fi înlocuit cu un string
tastează T
este folosit în întreaga clasă la compilare. Prin urmare, tipul de proprietate Data
ar fi un string
. figura de mai jos ilustrează modul în care funcționează generice.,
puteți atribui o valoare șir la Data
proprietate. Încercarea de a atribui alte valori decât string va duce la o eroare de compilare.
puteți specifica diferitele tipuri de date pentru diferite obiecte, după cum se arată mai jos.