2008-12-21 62 views

回答

6

不,除非类型(带有受保护的成员)本身就是内部的。内部类型不能成为公共/受保护API的一部分,因为消费者无法使用它。

你可以,但是,可以考虑使用一个公共接口抽象类型 - 即

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

泛型可以为这个太有用了:

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

若包含保护类方法是外部可见的。这是因为一些外部类可能来自该类,并需要知道参数的类型。