2009-08-01 3 views
1

est-il un moyen de limiter l'accès aux membres de ces classes comme indiqué dans les commentaires;Existe-t-il un modificateur d'accès permettant aux classes héritées de modifier les membres de la classe parente dans C#?

class a 
{ 
    int p //should be accessable by b,c, but not by x 
} 

class b:a 
{ 
    int q //should be accessable by c, if it has to by a, but not by x 
} 

class c:b 
{ 
    public int r //obviously accessable by anyone 
} 

class x 
{ 
    c testfunction() 
    { 
     c foo=new c(); 
     foo.r=20; 
     return foo; 
    } 
} 

C'est un peu plus compliqué que l'exemple de code ici, mais je pense que mon problème est le suivant.

Répondre

11

Oui - ce serait le modificateur d'accès protected - permet aux descendants d'y accéder, mais pas aux utilisateurs «extérieurs».

class a 
{ 
    protected int p //should be accessable by b,c, but not by x 
} 

class b:a 
{ 
    protected int q //should be accessable by c, if it has to by a, but not by x 
} 

class c:b 
{ 
    public int r //obviously accessable by anyone 
} 

Marc

Questions connexes