Junior
Τι είναι οι τύποι δεδομένων αναφοράς στη C# και ποια είναι τα χαρακτηριστικά τους;
sobes.tech AI
Απάντηση από AI
Οι τύποι δεδομένων αναφοράς αποθηκεύουν αναφορές σε αντικείμενα στον σωρό. Οι μεταβλητές τύπου αναφοράς περιέχουν τη διεύθυνση στη μνήμη όπου βρίσκεται το ίδιο το αντικείμενο.
Χαρακτηριστικά:
- Μεταβίβαση με αναφορά: Η ανάθεση της τιμής μιας μεταβλητής τύπου αναφοράς σε μια άλλη του ίδιου τύπου οδηγεί στο να δείχνουν και οι δύο στο ίδιο αντικείμενο στη μνήμη.
- Διαχείριση μνήμης: Τα αντικείμενα τύπου αναφοράς τοποθετούνται στον διαχειριζόμενο σωρό. Ο συλλέκτης αχρήστων ελευθερώνει αυτόματα τη μνήμη που καταλαμβάνεται από αντικείμενα στα οποία δεν υπάρχουν πλέον αναφορές.
- Προεπιλεγμένη τιμή: Η προεπιλεγμένη τιμή για τύπο αναφοράς είναι
null. - Κληρονομικότητα και πολυμορφισμός: Οι τύποι αναφοράς υποστηρίζουν κληρονομικότητα, επιτρέποντας τη δημιουργία ιεραρχιών κλάσεων και τη χρήση πολυμορφισμού.
- Σύγκριση: Ο τελεστής
==συγκρίνει προεπιλεγμένα τις αναφορές, όχι το περιεχόμενο των αντικειμένων.
Παραδείγματα:
- Κλάσεις (
class) - Διεπαφές (
interface) - Delegates (
delegate) - Πίνακες (
array) - Συμβολοσειρές (
string) (αν και τοstringείναι μια αμετάβλητη αναφορά τύπου)
// Παράδειγμα αναφοράς τύπου Class1
public class Class1
{
public int Value { get; set; }
}
// Δημιουργία αντικειμένου Class1
Class1 obj1 = new Class1 { Value = 10 };
// Ανάθεση αναφοράς
Class1 obj2 = obj1;
// Η αλλαγή της τιμής μέσω του obj2 επηρεάζει το obj1
obj2.Value = 20;
// Τώρα, το obj1.Value είναι ίσο με 20
System.Console.WriteLine(obj1.Value);