Maison >développement back-end >C++ >Comment C# atteint-il des fonctionnalités similaires au mot-clé « ami » de C ?

Comment C# atteint-il des fonctionnalités similaires au mot-clé « ami » de C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-29 17:24:18612parcourir

How Does C# Achieve Functionality Similar to C  's

Friend Keyword Equivalent en C#

En C , le mot-clé "friend" accorde l'accès aux membres privés d'une classe à une autre classe. En C#, il n'y a pas d'équivalent direct, mais l'attribut "InternalsVisibleTo" fournit un accès limité à des fins de tests.

Utilisation de l'attribut "InternalsVisibleTo"

Le "InternalsVisibleTo" L'attribut est placé dans le fichier AssemblyInfo.cs au sein de chaque assembly. Il précise quels autres assemblys sont autorisés à accéder à ses membres internes, qui incluent les membres privés.

Exemple

Pour autoriser la classe Testeur à accéder aux membres privés d'une autre classe :

// AssemblyInfo.cs
[assembly: InternalsVisibleTo("TesterAssembly")]

Notez que "TesterAssembly" doit être le nom de l'assembly contenant le Tester class.

Limitations

"InternalsVisibleTo" n'est pas un véritable équivalent du mot-clé "friend" et présente plusieurs limitations :

  • Uniquement les membres internes sont exposés, pas les membres privés.
  • Il ne peut être utilisé que pour les assemblées, pas classes.
  • Il n'accorde pas l'accès aux membres privés hérités.
  • Il est destiné à des fins de test uniquement et ne doit pas être utilisé pour d'autres scénarios.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn