Junior
Τι είναι οι γενικοί τύποι (Generic) στη C#;
sobes.tech AI
Απάντηση από AI
Οι γενικοί τύποι (Generic) στη C# επιτρέπουν τον ορισμό κλάσεων, δομών, διεπαφών, delegates και μεθόδων με παραμέτρους τύπου. Αυτό παρέχει τη δυνατότητα επανάχρησης κώδικα και αύξησης της ασφάλειας τύπων.
Βασικά πλεονεκτήματα:
- Επανάχρηση κώδικα: Μία κλάση ή μέθοδος μπορεί να λειτουργεί με διαφορετικούς τύπους δεδομένων χωρίς διπλότυπη λογική.
- Ασφάλεια τύπων: Ο μεταγλωττιστής ελέγχει τους τύπους κατά τη μεταγλώττιση, αποτρέποντας σφάλματα χρόνου εκτέλεσης που σχετίζονται με ασυμβατότητα τύπων.
- Απόδοση: Για τύπους αξίας (struct), δεν πραγματοποιείται boxing, βελτιώνοντας την απόδοση σε σύγκριση με τη χρήση του
object.
Αρχές λειτουργίας:
- Παράμετροι τύπου: Ορίζονται με χρήση αγγλικών αγκυλών
<T>, όπουTείναι το όνομα της παραμέτρου τύπου. Μπορεί να χρησιμοποιηθεί οποιοδήποτε όνομα, αλλά τοTείναι συνηθισμένο. - Δημιουργία στιγμιότυπων: Κατά τη δημιουργία ενός στιγμιότυπου γενικού τύπου, πρέπει να οριστεί συγκεκριμένος τύπος δεδομένων για κάθε παράμετρο τύπου.
- Περιορισμοί (Constraints): Μπορούν να επιβληθούν περιορισμοί στις παραμέτρους τύπου, υποδεικνύοντας ποιες δυνατότητες πρέπει να υποστηρίζουν οι τύποι (π.χ., υλοποίηση διεπαφής, βασική κλάση, απουσία κατασκευαστή).
Παράδειγμα χρήσης της γενικής κλάσης List<T>:
// Δημιουργία λίστας ακέραιων
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
// Δημιουργία λίστας συμβολοσειρών
List<string> names = new List<string>();
names.Add("Alice");
names.Add("Bob");