2008-12-21 11 views

Répondre

6

Non, sauf si le type (avec le membre protégé) est lui-même interne. Les types internes ne peuvent pas faire partie d'une API publique/protégée, car le consommateur n'aurait aucun moyen de l'utiliser.

Vous pouvez cependant envisager d'utiliser une interface publique abstraite du type - à savoir

public interface IFoo {} 
internal class Foo : IFoo {} 
public class Bar { 
    protected void Test(IFoo foo) {} 
} 

Generics peut être utile pour cela aussi:

protected void Test<T>(T foo) where T : IFoo { } 
1

Non si la classe qui contient la protection la méthode est visible de l'extérieur. C'est parce que certaines classes externes pourraient dériver de cette classe et auraient besoin de connaître le type du paramètre.

Questions connexes