VB.net klases atribūtu redzamība

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.