Objektumok (Programming Guide c #), a Microsoft docs

Ebben a cikkben,

Meghatározása egy osztály vagy hasonló szerkezetű a rajzokon, amely meghatározza az által végrehajtott műveleteket a típus. Lényegében, az objektum egy memóriában blokk kiosztott és konfigurálva megfelelően a rajzon. A program létrehoz a különböző tárgyak az azonos osztályban. Tárgyak is nevezik példányok. Ezek tárolható akár nevű változó vagy egy tömb vagy gyűjtemény. Ügyfél-kód - a kód, amely ezeket a változókat metódusokat és elérheti, hogy nyissa ki az objektum tulajdonságait. Az objektum-orientált nyelv, mint a C #, a standard program áll, több dinamikusan kölcsönható tárgyakat.

megjegyzés

A viselkedés a statikus típus eltér a viselkedést az itt leírt. További információkat. Lásd: Statikus osztályok és a statikus osztály tagjait.

Másolatok szerkezete példányok és osztályok

Példányainak osztályok jönnek létre az új üzemeltető. A következő példa egy személy típus és person1 és személyenként 2 - vagy példányait ilyen típusú objektum.

Mivel a szerkezetek érték típusok, a változó objektum szerkezetét tárolt példányát az egész objektumot. Másolatai struktúrák is létrehozhatók az új üzemben. azonban ez nem kötelező, ahogy az alábbi példa:

Memória P1 és P2 osztják a verem áramlását. Ez a memória szabadul együtt típusától vagy az eljárás, amelyben megállapították. Ez az egyik oka annak, hogy a szerkezetek másolt feladat. Éppen ellenkezőleg, amikor a kimeneti az összes hivatkozást a körét a tárgy, a CLR automatikusan memóriát szabadít fel (végez szemétgyűjtő), a kiválasztott például. Az a lehetőség, determinisztikus megsemmisítése a objektumosztály, kapható a C ++, hiányzik itt. További információ a szemétgyűjtő a .NET Framework, lásd. A Garbage Collection.

megjegyzés

A közepes CLR folyamat memória kiosztása és felszabadítás a kezelt halom nagymértékben optimalizálva. A legtöbb esetben nincs lényeges különbség a teljesítési költségei elosztásának például az osztály a halom és elosztása fokon szerkezete a verem.

Azonosítása tárgyak és értékek az egyenlőség

Összehasonlítva a két objektum az egyenlőség, először meg kell határoznia, hogy meg kell tudni, vannak-e két változó egy objektum memóriában vagy értékek közül egy vagy több mező egyenlő. Ha szeretné összehasonlítani az értékeket, el kell döntenie, hogy az objektum egy példánya érték típusok (szerkezetek) vagy a referencia típusok (osztályok, küldöttek, tömbök).

Annak meghatározására, hogy a két esetben az egyik memóriahely hivatkozható (azaz, azonos ID), használja a statikus módszer Eredmény. (System.Object implicit osztályok számára minden érték típusú és hozzáférési típusokat, beleértve a szerkezeteket és osztályok a felhasználó által definiált).

Annak meghatározására, hogy a példány mezők párhuzamosban szerkezete azonos értékű, használja a ValueType.Equals. Mivel minden struktúrák implicit származó System.ValueType. módszer lehet nevezni közvetlenül a tárgy, amint az a következő példa:

A végrehajtás használt System.ValueType Egyenlő tükrözi, hiszen meg kell határozni a területen rendelkezésre álló bármilyen szerkezet. Amikor létrehozza saját minták felülírják az egyenlő módszer, hogy egy hatékony algoritmust egyenlőség, a típusát.

  • Annak eldöntésére, hogy a mezők értékeit a két esetben az osztály megegyezik, akkor az egyenlő módszer vagy a == operátor. Ezek azonban csak akkor szabad használni, ha azokat felülírják vagy túlterhelt osztály, hogy az egyéni meghatározása egyenlőség ilyen típusú objektum. Az osztály is végre interfész IEquatable vagy interfész IEqualityComparer. Mindkét felület biztosítja módszereket lehet használni, hogy ellenőrizze az egyenlő értékeket. Amikor létrehozza saját osztályokat, felülírás Egyenlő. el kell végeznie az utasításokat a szakaszok gyakorlati útmutató. Meghatározása értékek típusának egyenlőség és Object.Equals (Object).

kapcsolódó témák