VB.net klases atribūtu redzamība tiek definēta visam tipam, ne tipa instancei, kā mēs to varbūt sagaidām.
Tas ir, viena klases instance var mierīgi piekļūt citas klases instances privātajiem laukiem. Piemērs:
Class Test
Private scValue As String
Public ReadOnly Property Value() As String
Get
Return scValue
End Get
End Property
Public Sub Export(ByRef opTest As Test)
opTest.scValue = Me.scValue
End Sub
End Class
Tas ir, mēs definējam klasi Test, kurai ir viens privāts lauks scValue. (Privāts = tikai pati klase drīkst mainīt atribūtu vērtības). Un vēl klasei ir ReadOnly atribūts Value, kas atgriež lauka scValue vērtību.
Bet patiesībā veiksmīgi izpildās funkcija export, kas pēc references saņem citu šīs pašas klases instanci un mierīgā garā uzstāda tās lauka vērtību. Jebkādas citas klases instance, protams, netiktu pie Test klases iekšējiem laukiem.
Tomēr – ar šo uzmanīgi! Var rasties problēmas.