【发布时间】:2013-07-25 17:04:13
【问题描述】:
我在同一个程序集中定义了一个接口和一个抽象基类:
IFoo.cs:
internal interface IFoo { ... }
Base.cs:
public abstract class Base
{
internal protected Base(IFoo foo) { ... }
}
这会产生以下编译器错误:
CS0051: Inconsistent accessibility: parameter type 'IFoo' is less
accessible than method 'Base.Base(IFoo)'
如果我只将基类构造函数设为内部,错误就会消失。由于该类是抽象的,因此向可访问性添加保护可能不会完成任何事情...
不过,我还是不明白这个错误。 MSDN 将“受保护的内部”定义为
"访问仅限于当前程序集或派生自 包含类"
内部接口 IFooless 如何比内部受保护的构造函数可访问?
【问题讨论】: