Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ των λέξεων-κλειδιών const και readonly στο πλαίσιο του προγραμματισμού, και σε ποιες περιπτώσεις είναι προτιμότερο να τις χρησιμοποιείτε;

sobes.tech AI

Απάντηση από AI

Στη C#, η λέξη-κλειδί const χρησιμοποιείται για τον ορισμό σταθερών των οποίων οι τιμές είναι γνωστές κατά τη μεταγλώττιση και δεν μπορούν να αλλάξουν κατά την εκτέλεση. Τιμές τέτοιες πρέπει να είναι primitive ή λεκτικές και να αρχικοποιούνται αμέσως.

Το readonly εφαρμόζεται σε πεδία των οποίων η τιμή μπορεί να οριστεί μόνο κατά την δήλωση ή στον κατασκευαστή της κλάσης. Μετά την αρχικοποίηση, η τιμή δεν μπορεί να αλλάξει, αλλά μπορεί να υπολογιστεί κατά την εκτέλεση.

Πότε να χρησιμοποιείτε:

  • const — για αμετάβλητες τιμές γνωστές κατά τη μεταγλώττιση (π.χ. αριθμοί, συμβολοσειρές).
  • readonly — όταν η τιμή είναι γνωστή μόνο κατά την εκτέλεση, π.χ. εξαρτάται από τις παραμέτρους του κατασκευαστή.

Παράδειγμα:

public class Example {
    public const double Pi = 3.1415; // γνωστό κατά τη μεταγλώττιση
    public readonly DateTime CreatedAt;

    public Example() {
        CreatedAt = DateTime.Now; // αρχικοποίηση κατά την εκτέλεση
    }
}