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.
ProjectA\Properties\AssemblyInfo.cs
|
using System.Runtime.CompilerServices;
// set ProjectB as friend assembly
[assembly: InternalsVisibleTo("ProjectB")]
|
ProjectA\ClassA.cs
|
namespace ProjectA
{
internal class ClassA {}
}
|
ProjectB\ClassB.cs
|
namespace ProjectB
{
class ClassB
{
public ClassB()
{
// internal ClassA from assembly ProjectA is accessible from assembly ProjectB because ProjectA is a friend assembly of ProjectB
var a = new ProjectA.ClassA();
}
}
}
|