private
en C# est vraiment seulement une partie de la spécification du langage; dans le langage C#, ainsi que dans le langage Visual Basic ou tout autre langage .NET sensible (y compris CIL, ce que tous les langages .NET compilent) est empêché d'accéder à un private
(ou protected
, si vous n'êtes pas dans une classe dérivée) membre dans le langage. Toutefois, le fait que le langage ne prenne pas en charge l'accès public aux membres private
ou protected
ne signifie pas que le cadre sous-jacent ne peut pas fournir l'accès à ces membres.
C'est l'un de ces cas où l'on ne doit pas en général être en utilisant des solutions de contournement comme réflexion pour accéder ou modifier private
ou protected
membres, mais le cadre permet une toute façon. Généralement, vous devriez avoir un très bonne raison d'accéder aux membres private
ou protected
; L'une de ces raisons est, par exemple, l'implémentation d'un sérialiseur qui doit examiner l'état interne de l'objet pour correctement sérialiser l'objet. Si vous ne faites pas quelque chose comme ça, vous devriez vraiment essayer de réimplémenter la classe dans laquelle vous vous trouvez, de sorte que vous n'ayez pas besoin d'utiliser la réflexion dans votre programme.
Ce lien est cassé. A-t-il déménagé ailleurs? –