Objektum adattípusa

Az objektumokra hivatkozó címeket tárolja. Bármilyen referenciatípust (sztringet, tömböt, osztályt vagy felületet) hozzárendelhet egy Object változóhoz. A Object változók bármilyen típusú adatokra (numerikus, Boolean, Char, Datestruktúra vagy enumerálás) hivatkozhatnak.

Megjegyzések

Az Object adattípus bármilyen adattípus adataira mutathat, beleértve az alkalmazás által felismert objektumpéldányokat is. Akkor használja Object , ha nem tudja fordításkor, hogy a változó milyen adattípusra mutathat.

Az alapértelmezett érték ObjectNothing (null értékű hivatkozás).

Adattípusok

Bármely adattípus változóját, állandóját vagy kifejezését hozzárendelheti egy Object változóhoz. Az aktuálisan használt adattípus Object meghatározásához használhatja az GetTypeCodeSystem.Type osztály metódusát. Az alábbi példa ezt szemlélteti.

Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())

Az Object adattípus egy referenciatípus. A Visual Basic azonban értéktípusként kezeli Object a változót, ha értéktípusú adatokra hivatkozik.

Tárolás

Bármilyen adattípusra is hivatkozik, a változó nem magát az adatértéket Object tartalmazza, hanem az értékre mutató mutatót. Mindig négy bájtot használ a számítógép memóriájában, de ez nem tartalmazza a változó értékét képviselő adatok tárterületét. Az adatok Object megkeresésére a mutatót használó kód miatt az értéktípusokat tartalmazó változók valamivel lassabban érhetők el, mint a kifejezetten beírt változók.

Programozás Tippek

  • Interop szempontok. Ha nem a .NET-keretrendszer írt összetevőkkel , például Automation- vagy COM-objektumokkal kommunikál, vegye figyelembe, hogy más környezetekben a mutatótípusok nem kompatibilisek a Visual Basic Object típussal.

  • Teljesítmény. A típussal Object deklarált változó elég rugalmas ahhoz, hogy bármilyen objektumra hivatkozzon. Amikor azonban metódust vagy tulajdonságot hív meg egy ilyen változón, mindig késve kötést kell alkalmaznia (futásidőben). A korai kötés kényszerítéséhez (fordítási időben) és a jobb teljesítmény érdekében deklarálja a változót egy adott osztálynévvel, vagy adja hozzá az adott adattípushoz.

    Objektumváltozó deklarálásakor próbáljon meg egy adott osztálytípust használni, például OperatingSystemaz általánosított Object típus helyett. A rendelkezésre álló legspecifikusabb osztályt is használnia kell, például TextBox ahelyett Control, hogy hozzáférhessen a tulajdonságaihoz és metódusaihoz. Az ObjektumböngészőBen általában az Osztályok listát használhatja az elérhető osztálynevek megkereséséhez.

  • Szélesedő. Az összes adattípus és referenciatípus az adattípusra szélesedik Object . Ez azt jelenti, hogy bármilyen típust Object átalakíthat hiba nélkül System.OverflowException .

    Ha azonban értéktípusok között konvertál, és Objecta Visual Basic a boxing és a unboxing nevű műveleteket hajtja végre, ami lassabbá teszi a végrehajtást.

  • Írja be a karaktereket. Object nem rendelkezik literális típuskaraktere vagy azonosítótípus-karaktere.

  • Keretrendszer típusa. A .NET-keretrendszer megfelelő típusa az System.Object osztály.

Példa

Az alábbi példa egy Object objektumpéldányra mutató változót szemléltet.

Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)

Lásd még