第一次出现此错误 - 可访问性不一致

时间:2010-11-11 00:07:11

标签: c# compiler-errors

这是我第一次使用接口和正确的命名空间结构。当我编译时,我得到下面的错误,我不知道这意味着什么。我所做的任何搜索都会显示私人公共问题但两者都是公开的。有什么想法吗?

  

错误可访问性不一致:返回类型'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

3 个答案:

答案 0 :(得分:7)

public类上有public个属性,公开了非public类型的列表。
您需要将IOperatorRequest更改为public或将UrlBuilderO2类或GetUrlReuests方法更改为非public

答案 1 :(得分:3)

问题是IOperatorRequest可能是internal

<强>更新

我说的是对的。 Omitting modifier makes it internal.

  

直接在命名空间内声明的类和结构(换句话说,不嵌套在其他类或结构中)可以是公共的或内部的。如果未指定访问修饰符,则内部是默认值。

答案 2 :(得分:2)

IOperatorRequestinternal,其可访问性低于public

  

顶层类型,它们不是嵌套的   在其他类型中,只能有内部   或公共可访问性。 默认值   这些类型的可访问性是   的内部即可。

from MSDN