Zugang private Variable der Klasse mit seinem Objekt (Instanz)
-
19-08-2019 - |
Frage
Hier ist ein VB.NET-Code-Snippet
Public Class OOPDemo
Private _strtString as String
Public Function Func(obj as OOPDemo) as boolean
obj._strString = "I can set value to private member using a object"
End Function
End Class
Ich dachte, wir können nicht die privaten Mitglieder Zugriff auf das Objekt verwenden, aber vielleicht CLR ermöglicht es uns, das zu tun. So bedeutet das, dass Zugriffsmodifikatoren von der Art basieren und nicht auf der Instanz dieses Typs. Ich habe auch gehört, dass c ++ ermöglicht es auch, dass ..
Jede Vermutungen, was der Grund dafür sein könnte?
Edit:
Ich denke, diese Zeile aus dem Link Msdn gegeben durch RoBorg dieses Verhalten erklärt „Code in der Art, die ein eigenes Element erklärt, darin enthaltenen Typen, einschließlich Code, kann das Element zugreifen“
Lösung
Ihre Frage ist ziemlich verwirrend, aber ich glaube, ich habe verstanden es als: „Warum kann ich auf eine andere Instanz (meiner Klasse) 's private Variablen?“
Und du hast Recht - in allen OOP Sprachen, die ich verwendet habe, Sie private Variablen von anderen Instanzen zugreifen können, gerade weil die Zugriffsberechtigungen basieren auf dem der Code ist, anstatt auf dem Objektinstanz sie ‚gehört‘ <. / p>
Es könnte schwierig sein Kopierkonstruktoren oder Gleichheitsoperator anders zu implementieren.
Andere Tipps
Hier ist der Abschnitt über Zugriffsebene in MSDN .