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 προς αντικείμενα που έχουν εκχωρηθεί στη στοίβα απαγορεύεται αυστηρά.
Δείτε επίσης
- Namespace System
- Library Aspose.Page for C++