Accéder à la variable membre privée de la classe à l'aide de son objet (instance)

StackOverflow https://stackoverflow.com/questions/346127

  •  19-08-2019
  •  | 
  •  

Question

Voici un extrait de code VB.NET

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 pouvions pas accéder aux membres privés à l'aide de l'objet, mais CLR nous permet peut-être de le faire. 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 aussi entendu dire que c ++ permet aussi que ..

Vous vous demandez quelle pourrait en être la raison?

Modifier:

Je pense que cette ligne du lien msdn donné par RoBorg explique ce comportement "Le code dans le type qui déclare un élément privé, y compris le code dans les types contenus, peut accéder à l'élément"

Était-ce utile?

La solution

Votre question est assez déroutante mais je pense l’avoir comprise comme suit: "Pourquoi puis-je accéder à une autre instance (des variables privées de ma classe)?"

Et vous avez raison: dans toutes les langues de POO que j'ai utilisées, vous pouvez accéder à des variables privées à partir d'autres instances, précisément parce que les autorisations d'accès sont basées sur l'emplacement du code plutôt que sur l'instance d'objet à laquelle il appartient.

Sinon, il pourrait être difficile d'implémenter des constructeurs de copie ou des opérateurs d'égalité.

Autres conseils

Voici la section sur les niveaux d'accès dans MSDN .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top