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


Útmutató: Alapértelmezett tulajdonság deklarálása és meghívása a Visual Basicben

Az alapértelmezett tulajdonság egy osztály- vagy struktúratulajdonság, amelyhez a kód anélkül férhet hozzá, hogy megadta volna. Ha a kód egy osztályt vagy struktúrát nevez el, de tulajdonságot nem, és a környezet hozzáférést biztosít egy tulajdonsághoz, a Visual Basic feloldja az adott osztály vagy struktúra alapértelmezett tulajdonságához való hozzáférést, ha van ilyen.

Egy osztály vagy struktúra legfeljebb egy alapértelmezett tulajdonságot tartalmazhat. Azonban túlterhelhet egy alapértelmezett tulajdonságot, és több verzióval is rendelkezhet.

További információ: Alapértelmezett.

Alapértelmezett tulajdonság deklarálása

  1. Deklarálja a tulajdonságot a szokásos módon. Ne adja meg a kulcsszót vagy Private a kulcsszótShared.

  2. Adja meg a kulcsszót Default a tulajdonságdeklarációban.

  3. Adjon meg legalább egy paramétert a tulajdonsághoz. Nem definiálhat olyan alapértelmezett tulajdonságot, amely nem vesz igénybe legalább egy argumentumot.

    Default Property myProperty(ByVal index As Integer) As String
    

Alapértelmezett tulajdonság meghívása

  1. Deklaráljon egy változót a tartalmazó osztályból vagy struktúratípusból.

    Dim x As New class1(3)
    
  2. Használja egyedül a változó nevét egy olyan kifejezésben, amelyben általában a tulajdonság neve szerepel.

    MsgBox(x)
    
  3. Kövesse a változó nevét egy zárójelben lévő argumentumlistával. Az alapértelmezett tulajdonságnak legalább egy argumentumot tartalmaznia kell.

    MsgBox(x(1))
    
  4. Az alapértelmezett tulajdonságérték lekéréséhez használja a változó nevét egy argumentumlistával egy kifejezésben vagy egy hozzárendelési utasítás egyenlőségjelét (=) követve.

    MsgBox(x(1) & x(2) & x(3))
    
  5. Az alapértelmezett tulajdonságérték beállításához használja a változó nevét egy argumentumlistával a hozzárendelési utasítás bal oldalán.

    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    
  6. Az alapértelmezett tulajdonságnevet mindig megadhatja a változó nevével együtt, ugyanúgy, mint bármely más tulajdonság eléréséhez.

    x.myProperty(1) = "Hello"
    x.myProperty(2) = " "
    x.myProperty(3) = "World"
    

1. példa

Az alábbi példa egy osztály alapértelmezett tulajdonságát deklarálja.

Public Class class1
    Private myStrings() As String
    Sub New(ByVal size As Integer)
        ReDim myStrings(size)
    End Sub
    Default Property myProperty(ByVal index As Integer) As String
        Get
            ' The Get property procedure is called when the value
            ' of the property is retrieved.
            Return myStrings(index)
        End Get
        Set(ByVal Value As String)
            ' The Set property procedure is called when the value
            ' of the property is modified.
            ' The value to be assigned is passed in the argument 
            ' to Set.
            myStrings(index) = Value
        End Set
    End Property
End Class

2. példa

Az alábbi példa bemutatja, hogyan hívhatja meg az osztály class1alapértelmezett tulajdonságátmyProperty. A három hozzárendelési utasítás tárolja az értékeket, myPropertyés a MsgBox hívás felolvassa az értékeket.

Sub Test()
    Dim x As New class1(3)
    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    MsgBox(x(1) & x(2) & x(3))
End Sub

Az alapértelmezett tulajdonság leggyakoribb használata a Item[] különböző gyűjteményosztályok tulajdonsága.

Robusztus programozás

Az alapértelmezett tulajdonságok kis mértékben csökkenthetik a forráskódkarakterek értékét, de megnehezíthetik a kód olvasását. Ha a hívó kód nem ismeri az osztályt vagy a struktúrát, az osztály vagy a struktúra nevére való hivatkozáskor nem lehet biztos abban, hogy a hivatkozás maga az osztályhoz vagy szerkezethez fér hozzá, vagy egy alapértelmezett tulajdonsághoz. Ez fordítási hibákhoz vagy finom futásidejű logikai hibákhoz vezethet.

Némileg csökkentheti az alapértelmezett tulajdonsághibák esélyét, ha mindig az Option Strict Utasítást használja a fordítótípus-ellenőrzés Onbeállításához.

Ha előre definiált osztályt vagy struktúrát szeretne használni a kódban, meg kell határoznia, hogy van-e alapértelmezett tulajdonsága, és ha igen, akkor mi a neve.

Ezen hátrányok miatt érdemes megfontolni, hogy ne határozza meg az alapértelmezett tulajdonságokat. A kód olvashatósága érdekében azt is érdemes megfontolnia, hogy mindig kifejezetten hivatkozik az összes tulajdonságra, még az alapértelmezett tulajdonságokra is.

Lásd még