Kelas System::Object
Object class
Kelas dasar yang memungkinkan penggunaan metode yang tersedia untuk kelas System.Object dalam C#. Semua kelas non-trivial yang digunakan dengan lingkungan terjemahan harus mewarisinya.
class Object
Metode
| Metode | Deskripsi |
|---|---|
| virtual Equals(ptr) | Membandingkan objek menggunakan semantik Object.Equals C#. |
| static Equals(T1 const&, T2 const&) | Membandingkan objek tipe referensi dengan gaya C#. |
| static Equals(T1 const&, T2 const&) | Membandingkan objek tipe nilai dengan gaya C#. |
| static Equals(float const&, float const&) | Meniru perbandingan titik mengambang gaya C# dimana dua NaN dianggap sama meskipun menurut IEC 60559:1989 NaN tidak sama dengan nilai apa pun, termasuk NaN. |
| static Equals(double const&, double const&) | Meniru perbandingan titik mengambang gaya C# dimana dua NaN dianggap sama meskipun menurut IEC 60559:1989 NaN tidak sama dengan nilai apa pun, termasuk NaN. |
| virtual FastCast(const Details::FastRttiBase&, void **) const | Hanya untuk keperluan internal. |
| GetCounter() | Mendapatkan struktur data penghitung referensi yang terkait dengan objek. |
| virtual GetHashCode() const | Analog dari metode Object.GetHashCode() C#. Memungkinkan hashing objek kustom. |
| virtual GetType() const | Mendapatkan tipe aktual dari objek. Analog dari pemanggilan System.Object.GetType() C#. |
| virtual Is(const TypeInfo&) const | Periksa apakah objek mewakili sebuah instance dari tipe yang dijelaskan oleh targetType. Analog dari operator ‘is’ C#. |
| Lock() | Mengimplementasikan penguncian pernyataan lock() C#. Panggil secara langsung atau gunakan objek penjaga LockContext. |
| virtual MemberwiseClone() const | Analog dari metode Object.MemberwiseClone() C#. Memungkinkan kloning tipe kustom. |
| Object() | Membuat objek. Menginisialisasi semua struktur data internal. |
| Object(Object const&) | Konstruktor penyalin. Tidak menyalin apa pun, sebenarnya, hanya menginisialisasi objek baru dan memungkinkan penyalinan konstruktor pada subclass. |
| operator=(Object const&) | Operator penugasan. Tidak menyalin apa pun, sebenarnya, hanya menginisialisasi objek baru dan memungkinkan penyalinan konstruktor pada subclass. |
| static ReferenceEquals(ptr const&, ptr const&) | Membandingkan objek berdasarkan referensi. |
| static ReferenceEquals(T const&, T const&) | Membandingkan objek berdasarkan referensi. |
| static ReferenceEquals(T const&, std::nullptr_t) | Reference-membandingkan objek tipe nilai dengan nullptr. |
| ReferenceEquals(String const&, std::nullptr_t) | Spesialisasi dari Object::ReferenceEquals untuk kasus string dan nullptr. |
| ReferenceEquals(String const&, String const&) | Spesialisasi dari Object::ReferenceEquals untuk kasus string. |
| RemovedSharedRefs(int) | Mengurangi hitungan referensi bersama sebesar nilai yang ditentukan. |
| virtual SetTemplateWeakPtr(uint32_t) | Atur argumen templat ke‑n menjadi pointer lemah (bukan berbagi). Memungkinkan penggantian pointer dalam kontainer ke mode lemah. |
| SharedCount() const | Mendapatkan nilai saat ini dari penghitung referensi bersama. |
| SharedRefAdded() | Meningkatkan hitungan referensi bersama. Tidak boleh dipanggil secara langsung; gunakan smart pointer atau ThisProtector. |
| SharedRefRemovedSafe() | Mengurangi dan mengembalikan hitungan referensi bersama. Tidak boleh dipanggil secara langsung; gunakan smart pointer atau ThisProtector. |
| virtual ToString() const | Analog dari metode C# Object.ToString(). Memungkinkan mengonversi objek khusus menjadi string. |
| static Type() | Mengimplementasikan konstruk C# typeof(System.Object). |
| Unlock() | Mengimplementasikan pembukaan pernyataan C# lock(). Panggil secara langsung atau gunakan objek penjaga LockContext. |
| WeakRefAdded() | Meningkatkan hitungan referensi lemah. Tidak boleh dipanggil secara langsung; gunakan smart pointer atau ThisProtector. |
| WeakRefRemoved() | Mengurangi hitungan referensi lemah. Tidak boleh dipanggil secara langsung; gunakan smart pointer atau ThisProtector. |
| virtual ~Object() | Menghancurkan objek. Membebaskan semua struktur data internal. |
Typedefs
| Typedef | Deskripsi |
|---|---|
| ptr | Alias untuk tipe smart pointer. |
Catatan
Selain metode yang tersedia dalam kelas C# System.Object, ini juga memungkinkan dukungan untuk beberapa konsep khusus lingkungan kode yang diterjemahkan. Ini mencakup penghitung referensi yang digunakan oleh kelas smart pointer (System::SmartPtr, System::WeakPtr, System::DynamicWeakPtr) dan layanan lain yang terkait dengan manajemen memori, debug, dll.
Setiap Object memiliki dua penghitung referensi: penghitung referensi bersama dan penghitung referensi lemah. Penghitung referensi lemah selalu disimpan dalam struktur data terpisah, bukan di dalam Object itu sendiri, yang memungkinkan pointer lemah tetap hidup setelah objek yang direferensikan dihancurkan. Penghitung referensi pintar disimpan baik di dalam objek itu sendiri maupun di struktur terpisah yang sama, tergantung pada status makro ENABLE_EXTERNAL_REFCOUNT. Secara default, ini diaktifkan pada build debug dan dinonaktifkan pada build release. Jika penghitung smart pointer disimpan di dalam objek, struktur data terpisah hanya dibuat bila ada pointer lemah ke objek tersebut. Jika tidak, struktur tersebut dibuat bersamaan dengan objek itu sendiri.
Semua smart pointer menggunakan kedua penghitung referensi ini dan berkontribusi pada satu grup kepemilikan yang sama dan tunggal.
Jika subclass Object dibuat di stack, tidak boleh dibuat smart pointer ke dalamnya, jika tidak akan terjadi masalah penghapusan stack.
Tipe ini dapat dialokasikan baik di stack sebagai tipe nilai maupun di heap menggunakan fungsi System::MakeObject(). Setelah objek dialokasikan, jangan pernah mencampur kedua penggunaan ini: memiliki pointer SmartPtr ke objek yang dialokasikan di stack sangat dilarang.
Lihat Juga
- Namespace System
- Library Aspose.Page for C++