从不实现它们的类访问接口?

0 c# asp.net interface

我有一个接口,IFindable由几个类实现.另一个World班有一个List<IFindable> items;

我在我的World类中设置了一个getItems方法,以返回IFindables列表.现在,我试图从我的Default.aspx.cs班级访问该列表(这是一个Web项目).不幸的是,我似乎无法,因为这个类不明白IFindable是什么.我收到以下错误:

Inconsistent accessibility: return type
'System.Collections.Generic.List<IFindable>' is less accessible than
method 'World.getItems()'
Run Code Online (Sandbox Code Playgroud)

为什么是这样?我错了吗?

Bob*_*Bob 7

听起来您的IFindable界面不公开,将其更改为此

public interface IFindable ...
Run Code Online (Sandbox Code Playgroud)

如果您当前的声明是这样的

interface IFindable ...
Run Code Online (Sandbox Code Playgroud)

然后编译器使用内部的默认可访问性

接口(如类)可以声明为公共或内部类型.与类不同,接口默认为内部访问.接口成员始终是公共的,并且不能应用任何访问修饰符.http://msdn.microsoft.com/en-us/library/ms173121%28VS.80%29.aspx

  • C#默认为"上下文中最常用的私有" - 对于顶级类型是"internal",对于类型中的成员是"private". (6认同)