Junior — Middle
Μπορείτε να εξηγήσετε την έννοια της διάρκειας ζωής ενός αντικειμένου ή μεταβλητής σε ένα πρόγραμμα;
sobes.tech AI
Απάντηση από AI
Η διάρκεια ύπαρξης ενός αντικειμένου ή μεταβλητής είναι η χρονική περίοδος κατά την οποία το αντικείμενο ή η μεταβλητή καταλαμβάνει μνήμη και είναι διαθέσιμα για χρήση στο πρόγραμμα.
Στη C#, η διάρκεια ύπαρξης εξαρτάται από το πεδίο ορατότητας και τον τύπο της μεταβλητής:
- Τοπικές μεταβλητές υπάρχουν μόνο κατά την εκτέλεση του μπλοκ κώδικα (π.χ., μια μέθοδος). Μετά την έξοδο από το μπλοκ, η μνήμη απελευθερώνεται.
- Πεδία αντικειμένων υπάρχουν όσο το ίδιο το αντικείμενο υπάρχει. Το αντικείμενο στον σωρό ζει μέχρι να μην υπάρχουν αναφορές σε αυτό, μετά ο συλλέκτης απορριμμάτων απελευθερώνει τη μνήμη.
- Στατικές μεταβλητές υπάρχουν καθ' όλη τη διάρκεια εκτέλεσης της εφαρμογής.
Παράδειγμα:
class Program
{
static int staticCounter = 0; // ζει καθ' όλη τη διάρκεια εκτέλεσης του προγράμματος
void Method()
{
int localVar = 5; // υπάρχει μόνο κατά την εκτέλεση της μεθόδου
var obj = new MyClass(); // το αντικείμενο ζει όσο υπάρχουν αναφορές
}
}