Junior — Middle
Μπορείτε να εξηγήσετε σε τι διαφέρουν οι τύποι αναφοράς από τους τύπους τιμής στη γλώσσα C#;
sobes.tech AI
Απάντηση από AI
Στην C#, οι τύποι δεδομένων χωρίζονται σε τύπους τιμών (value types) και τύπους αναφοράς (reference types).
- Τύποι τιμών αποθηκεύουν τα δεδομένα άμεσα. Κατά την ανάθεση ή την μεταβίβαση σε μια μέθοδο, η τιμή αντιγράφεται. Παραδείγματα:
int,double,struct. - Τύποι αναφοράς αποθηκεύουν μια αναφορά στην περιοχή μνήμης όπου βρίσκονται τα δεδομένα. Κατά την ανάθεση, αντιγράφεται μόνο η αναφορά, όχι τα δεδομένα. Παραδείγματα:
class,string, πίνακες.
Παράδειγμα:
int a = 5;
int b = a; // το b λαμβάνει ένα αντίγραφο της τιμής 5
b = 10; // το a παραμένει 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // και οι δύο αναφέρονται στο ίδιο αντικείμενο
p2.Name = "Bob"; // τώρα και το p1.Name είναι "Bob"
Έτσι, οι αλλαγές στους τύπους αναφοράς μέσω μιας μεταβλητής αντικατοπτρίζονται σε όλες τις αναφορές, ενώ στους τύπους τιμών όχι.