System::Object κλάση

Object class

Βασική κλάση που επιτρέπει τη χρήση μεθόδων διαθέσιμων για την κλάση System.Object σε C#. Όλες οι μη-τετριμμένες κλάσεις που χρησιμοποιούνται με το μεταφρασμένο περιβάλλον πρέπει να την κληρονομούν.

class Object

Μέθοδοι

ΜέθοδοςΠεριγραφή
virtual Equals(ptr)Συγκρίνει αντικείμενα χρησιμοποιώντας τη σημασιολογία του C# Object.Equals.
static Equals(T1 const&, T2 const&)Συγκρίνει αντικείμενα τύπου αναφοράς σε στυλ C#.
static Equals(T1 const&, T2 const&)Συγκρίνει αντικείμενα τύπου τιμής σε στυλ C#.
static Equals(float const&, float const&)Εξομοιώνει τη σύγκριση κινητής υποδιαστολής σε στυλ C# όπου δύο NaN θεωρούνται ίσα, παρόλο που σύμφωνα με το IEC 60559:1989 το NaN δεν είναι ίσο με καμία τιμή, συμπεριλαμβανομένου του NaN.
static Equals(double const&, double const&)Εξομοιώνει τη σύγκριση κινητής υποδιαστολής σε στυλ C# όπου δύο NaN θεωρούνται ίσα, παρόλο που σύμφωνα με το IEC 60559:1989 το NaN δεν είναι ίσο με καμία τιμή, συμπεριλαμβανομένου του NaN.
virtual FastCast(const Details::FastRttiBase&, void **) constΜόνο για εσωτερική χρήση.
GetCounter()Αποκτά τη δομή δεδομένων του μετρητή αναφορών που σχετίζεται με το αντικείμενο.
virtual GetHashCode() constΑναλογία της C# Object.GetHashCode() μεθόδου. Ενεργοποιεί την κατακερματισμό προσαρμοσμένων αντικειμένων.
virtual GetType() constΑποκτά τον πραγματικό τύπο του αντικειμένου. Αναλογία της κλήσης C# System.Object.GetType().
virtual Is(const TypeInfo&) constΕλέγχει αν το αντικείμενο αντιπροσωπεύει μια παρουσία του τύπου που περιγράφεται από το targetType. Αναλογία του C# τελεστή ‘is’.
Lock()Υλοποιεί το κλείδωμα της δήλωσης C# lock(). Κλήση απευθείας ή χρήση του αντικειμένου LockContext sentry.
virtual MemberwiseClone() constΑναλογία της C# Object.MemberwiseClone() μεθόδου. Ενεργοποιεί την κλωνοποίηση προσαρμοσμένων τύπων.
Object()Δημιουργεί αντικείμενο. Αρχικοποιεί όλες τις εσωτερικές δομές δεδομένων.
Object(Object const&)Κατασκευαστής αντιγραφής. Στην πραγματικότητα δεν αντιγράφει τίποτα, απλώς αρχικοποιεί νέο αντικείμενο και επιτρέπει την αντιγραφή κατασκευής υποκατηγοριών.
operator=(Object const&)Τελεστής ανάθεσης. Στην πραγματικότητα δεν αντιγράφει τίποτα, απλώς αρχικοποιεί νέο αντικείμενο και επιτρέπει την αντιγραφή κατασκευής υποκατηγοριών.
static ReferenceEquals(ptr const&, ptr const&)Συγκρίνει αντικείμενα κατά αναφορά.
static ReferenceEquals(T const&, T const&)Συγκρίνει αντικείμενα κατά αναφορά.
static ReferenceEquals(T const&, std::nullptr_t)Το Reference-συγκρίνει αντικείμενο τύπου τιμής με nullptr.
ReferenceEquals(String const&, std::nullptr_t)Ειδική υλοποίηση του Object::ReferenceEquals για περίπτωση συμβολοσειράς και nullptr.
ReferenceEquals(String const&, String const&)Ειδική υλοποίηση του Object::ReferenceEquals για περίπτωση συμβολοσειρών.
RemovedSharedRefs(int)Μειώνει τον κοινό μετρητή αναφορών κατά την καθορισμένη τιμή.
virtual SetTemplateWeakPtr(uint32_t)Ορίστε το n’th όρισμα προτύπου ως αδύναμο δείκτη (αντί για κοινόχρηστο). Επιτρέπει την εναλλαγή δεικτών σε containers σε αδύναμη λειτουργία.
SharedCount() constΕπιστρέφει την τρέχουσα τιμή του κοινόμετρου αναφορών.
SharedRefAdded()Αυξάνει τον κοινό μετρητή αναφορών. Δεν πρέπει να καλείται άμεσα· αντί αυτού, χρησιμοποιήστε έξυπνα δείκτες ή ThisProtector.
SharedRefRemovedSafe()Μειώνει και επιστρέφει τον κοινό μετρητή αναφορών. Δεν πρέπει να καλείται άμεσα· αντί αυτού, χρησιμοποιήστε έξυπνα δείκτες ή ThisProtector.
virtual ToString() constΑναλογικό της μεθόδου C# Object.ToString(). Επιτρέπει τη μετατροπή προσαρμοσμένων αντικειμένων σε συμβολοσειρά.
static Type()Υλοποιεί την κατασκευή C# typeof(System.Object).
Unlock()Υλοποιεί το άνοιγμα της δήλωσης C# lock(). Καλέστε άμεσα ή χρησιμοποιήστε το αντικείμενο φρουρού LockContext.
WeakRefAdded()Αυξάνει τον αδύναμο μετρητή αναφορών. Δεν πρέπει να καλείται άμεσα· αντί αυτού, χρησιμοποιήστε έξυπνα δείκτες ή ThisProtector.
WeakRefRemoved()Μειώνει τον αδύναμο μετρητή αναφορών. Δεν πρέπει να καλείται άμεσα· αντί αυτού, χρησιμοποιήστε έξυπνα δείκτες ή ThisProtector.
virtual ~Object()Καταστρέφει το αντικείμενο. Απελευθερώνει όλες τις εσωτερικές δομές δεδομένων.

Typedefs

TypedefΠεριγραφή
ptrΨευδώνυμο για τον τύπο έξυπνου δείκτη.

Παρατηρήσεις

Μαζί με τις μεθόδους που διατίθενται στην κλάση C# System.Object, παρέχει επίσης υποστήριξη για ορισμένες έννοιες ειδικές για το περιβάλλον μεταγλωττισμένου κώδικα. Αυτό περιλαμβάνει την καταμέτρηση αναφορών που χρησιμοποιείται από τις κλάσεις έξυπνων δεικτών (System::SmartPtr, System::WeakPtr, System::DynamicWeakPtr) και άλλες υπηρεσίες σχετικές με τη διαχείριση μνήμης, τον εντοπισμό σφαλμάτων κ.ά.

Κάθε Object διαθέτει δύο μετρητές αναφορών: τον κοινό μετρητή αναφορών και τον αδύναμο μετρητή αναφορών. Ο αδύναμος μετρητής αναφορών αποθηκεύεται πάντα σε αποσπαστή δομή δεδομένων αντί στο ίδιο το Object, επιτρέποντας στους αδύναμους δείκτες να υπερβιώνουν το αντικείμενο αναφοράς. Ο έξυπνος μετρητής αναφορών αποθηκεύεται είτε στο ίδιο το αντικείμενο είτε στην ίδια αποσπαστή δομή, ανάλογα με την κατάσταση του μακροεντολής ENABLE_EXTERNAL_REFCOUNT. Από προεπιλογή, είναι ενεργοποιημένο στις εκδόσεις debug και απενεργοποιημένο στις εκδόσεις release. Εάν ο μετρητής έξυπνου δείκτη αποθηκεύεται στο ίδιο το αντικείμενο, η αποσπαστή δομή δημιουργείται μόνο εάν υπάρχουν αδύναμοι δείκτες προς το αντικείμενο. Διαφορετικά, δημιουργείται παράλληλα με το ίδιο το αντικείμενο.

Όλοι οι έξυπνοι δείκτες χρησιμοποιούν αυτούς τους δύο μετρητές αναφορών και συμβάλλουν στην ίδια και μοναδική ομάδα ιδιοκτησίας.

Εάν η υποκλάση του Object δημιουργηθεί στη στοίβα, δεν μπορούν να δημιουργηθούν έξυπνοι δείκτες προς αυτήν· διαφορετικά προκύπτει πρόβλημα διαγραφής της στοίβας.

Αυτός ο τύπος μπορεί να εκχωρηθεί είτε στη στοίβα ως τύπος τιμής είτε στη σωρού χρησιμοποιώντας τη συνάρτηση System::MakeObject(). Μόλις το αντικείμενο εκχωρηθεί, μην αναμειγνύετε ποτέ αυτές τις δύο περιπτώσεις χρήσης: η ύπαρξη δεικτών SmartPtr προς αντικείμενα που έχουν εκχωρηθεί στη στοίβα απαγορεύεται αυστηρά.

Δείτε επίσης