public |
Pas de restriction d'accès
|
protected |
Accès restreint à la classe contenante et aux classes qui en héritent
|
internal |
Accès restreint à l'assembly courante
|
protected internal |
Accès restreint à l'assembly courante OU aux classes qui héritent de la classe courante.
|
private |
Accès restreint à la classe contenante
|
Par défaut
internal
|
class, struct et delegate définis dans un namespace
|
private
|
membres de class, membres de struct, éléments imbriqués (class dans une class)
|
Une assembly déclarée comme friend peut accéder aux membres internal de l'assembly courante.
Utile pour les tests unitaires.
AssemblyA.ClasseA.cs
|
using System.Runtime.CompilerServices;
// déclaration d'AssemblyB comme assembly friend
[assembly: InternalsVisibleTo("AssemblyB")]
namespace AssemblyA
{
class ClasseA {} // internal par défaut
}
|
AssemblyB.ClasseB.cs
|
namespace AssemblyB
{
class ClasseB
{
public ClasseB()
{
// accès possible à ClasseA qui est internal car AssemblyB est déclarée comme friend d'AssemblyA
var a = new AssemblyA.ClasseA();
}
}
}
|