Sobes.tech
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");