Maison > développement back-end > C++ > Comment C# atteint-il des fonctionnalités similaires au mot-clé « Friend » de C pour un accès contrôlé aux membres privés ?

Comment C# atteint-il des fonctionnalités similaires au mot-clé « Friend » de C pour un accès contrôlé aux membres privés ?

Susan Sarandon
Libérer: 2024-12-28 18:46:10
original
935 Les gens l'ont consulté

How Does C# Achieve Functionality Similar to C  's

Mot-clé Friend en C#

En programmation orientée objet, le mot-clé "friend" fournit un accès contrôlé aux membres d'une classe privée à certaines classes. Alors que C propose le mot-clé « ami », C# n'a pas d'équivalent direct pour cette fonctionnalité.

Alternative : InternalsVisibleTo

C# utilise l'attribut InternalsVisibleTo pour obtenir un accès limité aux informations privées. membres, principalement à des fins de tests. Cet attribut désigne les assemblys ou les espaces de noms comme étant approuvés, leur permettant d'accéder aux membres internes qui seraient autrement masqués au code externe.

Exemple

Considérez l'exemple suivant dans AssemblyInfo.cs. :

[assembly: InternalsVisibleTo("OtherAssembly")]
Copier après la connexion

Cet attribut rend l'assembly accessible au "OtherAssembly". Toutes les méthodes ou propriétés marquées comme internes au sein de l'assembly sont désormais accessibles à partir de "OtherAssembly".

Utilisation dans les tests

L'attribut InternalsVisibleTo s'avère particulièrement utile dans les tests unitaires. scénarios. En marquant un assembly comme InternalsVisibleTo pour l'assembly de test, les membres privés deviennent accessibles à des fins de test tout en restant cachés des autres codes externes.

Considérations

Alors qu'InternalsVisibleTo fournit un mécanisme pour un accès contrôlé, il diffère du mot-clé C "friend" de plusieurs manières :

  • Il nécessite une déclaration explicite dans AssemblyInfo.cs.
  • Il s'applique aux assemblées plutôt qu'aux classes individuelles.
  • Il ne permet pas l'accès à tous les membres privés ; il n'accorde l'accès qu'aux membres internes.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal