Voici un extrait de code VB.NETAccès membre privé de la classe par son objet (par exemple)
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
Je pensais que nous ne pouvons pas accéder aux membres privés en utilisant l'objet, mais peut-être CLR nous permet de faire cette. Cela signifie donc que les modificateurs d'accès sont basés sur le type et non sur l'instance de ce type. J'ai également entendu que C++ permet également que ..
Tout devine quelle pourrait être la raison de cela?
Edit:
Je pense que cette ligne à partir du lien msdn donnée par RoBorg explique ce comportement « Code dans le type qui déclare un élément privé, y compris le code dans les contenus types, peuvent accéder à l'élément »
Je viens juste de me lancer dans la première fois quand l'auto-complétion m'a donné l'opportunité d'accéder à la méthode privée de l'autre instance. Je prends votre point de vue sur les constructeurs de copie, mais il me semble encore mal du point de vue de l'encapsulation. – ChrisA