这是我第一次使用接口和正确的命名空间结构。当我编译时,我得到下面的错误,我不知道这意味着什么。我所做的任何搜索都会显示私人公共问题但两者都是公开的。有什么想法吗?
错误可访问性不一致:返回类型'System.Collections.Generic.List'不如方法'Webtext.ApplicationEntities.Implementations.AdditionalEntities.UrlBuilderO2.GetUrlRequests可访问 (string,string,string,string)'C:\ Users \ Laptop \ documents \ visual studio 2010 \ Projects \ Webtext \ Webtext \ ApplicationEntities \ Implementations \ AdditionalEntities \ UrlBuilderO2.cs 19 39 Webtext
代码文件是:
namespace Webtext.ApplicationEntities.Interfaces
{
interface IUrlBuilder
{
List<IOperatorRequest> GetUrlRequests(string UserName, string Password, string MessageRecipient, string Message);
}
}
和
namespace Webtext.ApplicationEntities.Implementations.AdditionalEntities
{
public class UrlBuilderO2: IUrlBuilder
{
public List<IOperatorRequest> GetUrlRequests(string UserName, string Password, string MessageRecipient, string Message)
{
throw new NotImplementedException();
}
}
}
命名空间结构
Webtext
ApplicationEntities
Interfaces
##### INTERFACE IS HERE
Implementations
AdditionalEntities
##### URL BUILDER IS HERE
答案 0 :(得分:7)
public
类上有public
个属性,公开了非public
类型的列表。
您需要将IOperatorRequest
更改为public
或将UrlBuilderO2
类或GetUrlReuests
方法更改为非public
。
答案 1 :(得分:3)
问题是IOperatorRequest
可能是internal
。
<强>更新强>
我说的是对的。 Omitting modifier makes it internal.
直接在命名空间内声明的类和结构(换句话说,不嵌套在其他类或结构中)可以是公共的或内部的。如果未指定访问修饰符,则内部是默认值。
答案 2 :(得分:2)
IOperatorRequest
为internal
,其可访问性低于public
。
顶层类型,它们不是嵌套的 在其他类型中,只能有内部 或公共可访问性。 默认值 这些类型的可访问性是 的内部即可。