Megosztás a következőn keresztül:


Értéktípusok és referenciatípusok

A Visual Basicben kétféle típus létezik: referenciatípusok és értéktípusok. A referenciatípusok változói az adataikra (objektumaikra) mutató hivatkozásokat tárolnak, míg az értéktípusok változói közvetlenül tartalmazzák az adataikat. Referenciatípusok esetében két változó hivatkozhat ugyanarra az objektumra; ezért az egyik változón végzett műveletek hatással lehetnek a másik változó által hivatkozott objektumra. Az értéktípusok esetében minden változó saját másolatot készít az adatokról, és az egyik változó műveletei nem befolyásolhatják a másikat (kivéve a paraméterek ByRef módosítóját).

Értéktípusok

Az adattípus akkor értéktípus , ha az adatokat a saját memóriafoglalásán belül tárolja. Az értéktípusok a következők:

  • Minden numerikus adattípus

  • Boolean, Charés Date

  • Minden struktúra, még akkor is, ha tagjai referenciatípusok

  • Enumerálások, mivel a mögöttes típusuk mindig SByte, Short, Integer, Long, Byte, UShort, UInteger, vagy ULong

Minden struktúra értéktípus, még akkor is, ha hivatkozástípus-tagokat tartalmaz. Ezért az olyan értéktípusokat, mint Char és Integer, a .NET-keretrendszer struktúrái implementálják.

Értéktípust deklarálhat például Decimala fenntartott kulcsszóval. A kulcsszóval New is inicializálhat egy értéktípust. Ez különösen akkor hasznos, ha a típus olyan konstruktorsal rendelkezik, amely paramétereket vesz fel. Erre példa a Decimal(Int32, Int32, Int32, Boolean, Byte) konstruktor, amely egy új Decimal értéket hoz létre a megadott alkatrészekből.

Referenciatípusok

A referenciatípusok az adataira mutató hivatkozást tárolnak. A referenciatípusok a következők:

  • String

  • Minden tömb, még akkor is, ha az elemei értéktípusok

  • Osztálytípusok, például Form

  • Delegáltak

Az osztály egy referenciatípus. Vegye figyelembe, hogy minden tömb referenciatípus, még akkor is, ha tagjai értéktípusok.

Mivel minden referenciatípus egy mögöttes .NET-keretrendszerosztályt jelöl, az inicializáláskor az Új operátor kulcsszót kell használnia. Az alábbi utasítás inicializál egy tömböt.

Dim totals() As Single = New Single(8) {}  

Típusnak nem minősülő elemek

A következő programozási elemek nem minősülnek típusoknak, mert egyiket sem adhatja meg adattípusként egy deklarált elemhez:

  • Névterek

  • Modulok

  • Események

  • Tulajdonságok és eljárások

  • Változók, állandók és mezők

Az objektum adattípusának használata

Hivatkozástípust vagy értéktípust is hozzárendelhet az Object adattípus változóihoz. A Object változók mindig hivatkoznak az adatokra, és nem magára az adatokra. Ha azonban értéktípust rendel hozzá egy Object változóhoz, az úgy viselkedik, mintha saját adatokat tárol. További információ: Objektum adattípusa.

Azt, hogy egy Object változó hivatkozástípusként vagy értéktípusként működik-e, megtudhatja úgy, hogy átadja a(z) IsReference metódusnak a(z) Information osztályban, mely a(z) Microsoft.VisualBasic névtér része. Information.IsReference akkor adja True vissza, ha a Object változó tartalma hivatkozástípust jelöl.

Lásd még