Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνουν το Μεταβλητό Τύπο;
Ο μεταβλητός τύπος, στον C #, είναι ένας τύπος αντικειμένου του οποίου τα στοιχεία δεδομένων, όπως ιδιότητες, δεδομένα και πεδία, μπορούν να τροποποιηθούν μετά τη δημιουργία του.
Οι μεταβλητοί τύποι χρησιμοποιούνται σε παράλληλες εφαρμογές, όπου τα αντικείμενα του τύπου μεταβλητής τιμής διατηρούνται στη στοίβα με το Common Language Runtime (CLR). Αυτό παρέχει κάποια βελτιστοποίηση, γεγονός που το καθιστά γρηγορότερο από τα αντικείμενα που έχουν χωριστεί σε σωρούς. Για να αποφευχθεί η εμφάνιση σφαλμάτων συγχρονισμού σε παράλληλες εφαρμογές εξαιτίας πολλαπλών συνδέσεων με πρόσβαση σε κοινόχρηστα δεδομένα, οι τύποι μεταλλαγής χρησιμοποιούνται με κάποιο είδος μηχανισμού κλειδώματος.
Λόγω της εγγενούς φύσης της, τα μεταβλητά δεδομένα τύπου μπορούν να τροποποιηθούν κατά τη διάρκεια του χρόνου εκτέλεσης, οπότε ο μεταβλητός τύπος χρησιμοποιείται συχνά όταν το αντικείμενο περιέχει μεγάλο αριθμό μεταβλητών δεδομένων. Αν και ο τύπος με δυνατότητα αλλαγής δεν είναι τόσο ασφαλής όσο και ασφαλής ως αμετάβλητος τύπος, χρησιμοποιείται συχνότερα με μεταβλητές τύπου τύπου που διατίθενται στη στοίβα, βελτιώνοντας την απόδοση.
Η Techopedia εξηγεί τον τύπο που μπορεί να μεταφερθεί
Όλοι οι ενσωματωμένοι τύποι τιμών όπως int, double, κ.λπ. είναι μεταβλητοί τύποι και μπορούν να γίνουν αμετάβλητοι προσθέτοντας τον τροποποιητή "readonly" πριν από τις μεταβλητές. Εάν καθορίζεται ένας μεταβλητός τύπος αναφοράς με έναν τροποποιητή ανάγνωσης, ο μεταγλωττιστής C # παράγει μια προειδοποίηση. Με την προσθήκη ενός τροποποιητή ανάγνωσης σε ένα πεδίο αναφοράς, το πεδίο δεν μπορεί να αντικατασταθεί με άλλη εμφάνιση του τύπου αναφοράς, αλλά θα επιτρέψει την τροποποίηση των δεδομένων του στιγμιότυπου του πεδίου μέσω του τύπου αναφοράς.
Για παράδειγμα, το StringBuilder είναι ένας μεταβλητός τύπος αναφοράς στη βιβλιοθήκη πλαισίων .NET, μέσω της οποίας η τιμή συμβολοσειράς μιας εμφάνισης που δημιουργήθηκε από αυτόν τον τύπο μπορεί να τροποποιηθεί προσθέτοντας, αφαιρώντας, αντικαθιστώντας ή εισάγοντας χαρακτήρες.
Ένας μεταβλητός τύπος δεν θα πρέπει να προέρχεται από έναν αμετάβλητο τύπο επειδή υπάρχει η δυνατότητα μιας εικονικής μεθόδου στην παράγωγη κλάση να την παρακάμπτει έτσι ώστε να αντικαθίστανται τα αμετάβλητα μέλη.
Ο κύριος περιορισμός του τύπου που μπορεί να μεταβληθεί είναι ότι ενώ μεταφέρεται ένα αντικείμενο μεταβλητού τύπου (όπως το struct) μέσω της ανάθεσης μιας τοπικής μεταβλητής ή ως μια παράμετρος σε μια μέθοδο, μεταφέρεται η τιμή του αντικειμένου και όχι το ίδιο το αντικείμενο. Με αυτό, το αντίγραφο του αντικειμένου μεταλλάσσεται και όχι το πρωτότυπο. Αυτή η συμπεριφορά μπορεί να οδηγήσει σε απροσδόκητα σφάλματα.
