Maison >développement back-end >C++ >Comment C# réalise-t-il la fonctionnalité du mot clé « ami » de C pour un accès contrôlé aux membres privés ?
Ami en C et son absence en C#
En C, le mot clé "friend" donne accès aux membres privés d'une classe à des cours. Cela permet un partage contrôlé d’informations privées sans compromettre l’encapsulation. Cependant, ce concept n'est pas directement implémenté en C#.
Bridging the Gap : InternalsVisibleTo
C# propose un attribut appelé InternalsVisibleTo comme l'approximation la plus proche de « ami ». Il permet à une assemblée d’accéder aux membres internes (y compris les membres privés) d’une autre assemblée. Cela fournit une forme limitée d'accès contrôlé.
Considérez le scénario suivant :
Pour y parvenir, vous placeriez l'attribut suivant dans le fichier AssemblyInfo.cs de ClassA :
[assembly: InternalsVisibleTo("TesterAssembly")]
Remplacez "TesterAssembly" par le nom de l'assembly contenant la classe Tester. Ce faisant, vous accordez à TesterAssembly l'accès aux membres internes de ClassA.
Exemple d'utilisation
Pour illustrer comment cela fonctionne, voici un simple exemple :
ClassA.cs
public class ClassA { private int _privateMember; public int PublicMember { get; set; } }
Tester.cs
using ClassAAssembly; public class Tester { public void Test() { // Access private member through InternalsVisibleTo var instance = new ClassA(); instance._privateMember = 10; } }
En appliquant l'attribut InternalsVisibleTo, vous pouvez contrôler l'accessibilité des membres internes (même les membres privés) au niveau de l'assembly, permettant ainsi de tester le code managé sans exposer les données sensibles à des utilisateurs externes. consommateurs.
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!