System::Object klasse
Object class
Basisklasse die het gebruik van methoden mogelijk maakt die beschikbaar zijn voor de System.Object klasse in C#. Alle niet-triviale klassen die in de vertaalde omgeving worden gebruikt, moeten hiervan erven.
class Object
Methoden
| Methode | Beschrijving |
|---|---|
| virtual Equals(ptr) | Vergelijkt objecten met behulp van C# Object.Equals semantiek. |
| static Equals(T1 const&, T2 const&) | Vergelijkt referentietype-objecten in C#-stijl. |
| static Equals(T1 const&, T2 const&) | Vergelijkt waardetype-objecten in C#-stijl. |
| static Equals(float const&, float const&) | Emuleert C#-stijl zwevendekommagetallen vergelijking waarbij twee NaN’s als gelijk worden beschouwd, hoewel volgens IEC 60559:1989 NaN niet gelijk is aan enige waarde, inclusief NaN. |
| static Equals(double const&, double const&) | Emuleert C#-stijl zwevendekommagetallen vergelijking waarbij twee NaN’s als gelijk worden beschouwd, hoewel volgens IEC 60559:1989 NaN niet gelijk is aan enige waarde, inclusief NaN. |
| virtual FastCast(const Details::FastRttiBase&, void **) const | Alleen voor intern gebruik. |
| GetCounter() | Haalt de referentieteller-gegevensstructuur op die bij het object hoort. |
| virtual GetHashCode() const | Analoge van C# Object.GetHashCode() methode. Maakt het hashen van aangepaste objecten mogelijk. |
| virtual GetType() const | Haalt het werkelijke type van het object op. Analoge van C# System.Object.GetType() oproep. |
| virtual Is(const TypeInfo&) const | Controleer of het object een instantie van het type vertegenwoordigt dat wordt beschreven door targetType. Analoge van C# ‘is’ operator. |
| Lock() | Implementeert het lock()-statement van C# voor vergrendeling. Roep direct aan of gebruik het LockContext bewakingsobject. |
| virtual MemberwiseClone() const | Analoge van C# Object.MemberwiseClone() methode. Maakt het klonen van aangepaste types mogelijk. |
| Object() | Maakt een object aan. Initialiseert alle interne datastructuren. |
| Object(Object const&) | Copy‑constructor. Kopieert eigenlijk niets, initialiseert alleen een nieuw object en maakt het mogelijk om subklassen te kopiëren. |
| operator=(Object const&) | Toewijzingsoperator. Kopieert eigenlijk niets, initialiseert alleen een nieuw object en maakt het mogelijk om subklassen te kopiëren. |
| static ReferenceEquals(ptr const&, ptr const&) | Vergelijkt objecten op referentie. |
| static ReferenceEquals(T const&, T const&) | Vergelijkt objecten op referentie. |
| static ReferenceEquals(T const&, std::nullptr_t) | Vergelijkt een value‑type object met nullptr op referentie. |
| ReferenceEquals(String const&, std::nullptr_t) | Specialisatie van Object::ReferenceEquals voor het geval van een string en nullptr. |
| ReferenceEquals(String const&, String const&) | Specialisatie van Object::ReferenceEquals voor het geval van strings. |
| RemovedSharedRefs(int) | Verlaagt de gedeelde referentieteller met de opgegeven waarde. |
| virtual SetTemplateWeakPtr(uint32_t) | Stel het n’th sjabloonargument in op een zwakke pointer (in plaats van gedeeld). Hiermee kun je pointers in containers overschakelen naar zwakke modus. |
| SharedCount() const | Haalt de huidige waarde van de gedeelde referentieteller op. |
| SharedRefAdded() | Verhoogt de gedeelde referentieteller. Mag niet direct worden aangeroepen; gebruik in plaats daarvan slimme pointers of ThisProtector. |
| SharedRefRemovedSafe() | Verlaagt en retourneert de gedeelde referentieteller. Mag niet direct worden aangeroepen; gebruik in plaats daarvan slimme pointers of ThisProtector. |
| virtual ToString() const | Analoge van C# Object.ToString() methode. Maakt het converteren van aangepaste objecten naar een string mogelijk. |
| static Type() | Implementeert de C# typeof(System.Object) constructie. |
| Unlock() | Implementeert het lock()-statement van C# voor ontgrendeling. Roep direct aan of gebruik het LockContext bewakingsobject. |
| WeakRefAdded() | Verhoogt de zwakke referentieteller. Mag niet direct worden aangeroepen; gebruik in plaats daarvan slimme pointers of ThisProtector. |
| WeakRefRemoved() | Verlaagt de zwakke referentieteller. Mag niet direct worden aangeroepen; gebruik in plaats daarvan slimme pointers of ThisProtector. |
| virtual ~Object() | Vernietigt het object. Vrijt alle interne datastructuren. |
Typedefs
| Typedef | Beschrijving |
|---|---|
| ptr | Alias voor het slimme pointertype. |
Opmerkingen
Naast de methoden die beschikbaar zijn in de C# System.Object klasse, biedt het ook ondersteuning voor enkele concepten die specifiek zijn voor de vertaalde code‑omgeving. Dit omvat referentietelling die wordt gebruikt door slimme pointerklassen (System::SmartPtr, System::WeakPtr, System::DynamicWeakPtr) en andere diensten gerelateerd aan geheugenbeheer, debugging, enz.
Elk Object heeft twee referentietellers: een gedeelde referentieteller en een zwakke referentieteller. De zwakke referentieteller wordt altijd opgeslagen in een losgekoppelde datastructuur in plaats van in het Object zelf, waardoor zwakke pointers langer dan het verwijzende object kunnen bestaan. De slimme referentieteller wordt opgeslagen ofwel in het object zelf of in dezelfde losgekoppelde structuur, afhankelijk van de status van de macro ENABLE_EXTERNAL_REFCOUNT. Standaard is deze ingeschakeld in debug‑builds en uitgeschakeld in release‑builds. Als de slimme pointer‑teller in het object zelf wordt opgeslagen, wordt de losgekoppelde datastructuur alleen aangemaakt als er zwakke pointers naar het object bestaan. Anders wordt deze naast het object zelf aangemaakt.
Alle slimme pointers gebruiken deze twee referentietellers en dragen bij aan dezelfde, enige eigendomsgroep.
Als een Object subklasse op de stack wordt aangemaakt, mogen er geen smart pointers naar worden gemaakt, anders ontstaat er een stack-deletieprobleem.
Dit type kan worden toegewezen, zowel op de stack als waarde-type, als op de heap met behulp van de functie System::MakeObject(). Zodra het object is toegewezen, meng deze twee gebruikssituaties nooit: het hebben van SmartPtr pointers naar stack-toegewezen objecten is strikt verboden.
Zie ook
- Namespace System
- Library Aspose.Page for C++