Équivalent C# du mot-clé « Ami »
En C, vous pouvez utiliser le mot-clé « ami » pour accorder l'accès aux membres privés de une classe vers d’autres classes. Cependant, cette fonctionnalité n'est pas directement prise en charge en C#. Au lieu de cela, l'attribut InternalsVisibleTo fournit un équivalent partiel pour accéder aux membres privés dans les assemblys.
Comment utiliser InternalsVisibleTo
Pour permettre à une classe d'un autre assembly d'accéder aux membres privés, vous pouvez ajouter l'attribut InternalsVisibleTo au manifeste d'assembly. Par exemple, dans le fichier AssemblyInfo.cs, vous pouvez utiliser le code suivant :
[assembly: InternalsVisibleTo("OtherAssembly")]
Cet attribut rend les éléments internes de votre assembly visibles à l'assembly nommé "OtherAssembly".
Exemple
Considérons la classe suivante :
internal class TestClass { private int privateValue; }
Dans un assemblage séparé, vous pouvez créer une classe pour accéder à privateValue :
public class TesterClass { public void DoSomething(TestClass instance) { // Set the value using reflection instance.GetType().GetField("privateValue", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(instance, 10); } }
En utilisant la réflexion et l'attribut InternalsVisibleTo, vous pouvez accéder aux membres privés des assemblys pour des scénarios spécifiques, tels que les tests.
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!