使用以下c#代码存在不一致的可访问性错误。为什么?

时间:2009-02-07 23:01:11

标签: c#

以下c#代码有什么问题?编译器报告此错误:

可访问性不一致:参数类型“ClassLibrary1.Interface1”的方法不如方法“ClassLibrary1.Class1.Class1(ClassLibrary1.Interface1)”

使用以下代码:

interface Interface1<T>
{
    bool IsDataValid();
    /* Other interfaces */
}

public class Class1<T>
{
    public Interface1<T> interface1;

    public Class1(Interface1<T> interface1)
    {
        this.interface1 = interface1;
    }

}

我已经使用继承来设计我的代码,但是如果有人能告诉我上面的错误我会非常感激。

3 个答案:

答案 0 :(得分:55)

您的“Interface1”不公开..

public interface Interface1<T>
{
    bool IsDataValid();
    /* Other interfaces */
}

答案 1 :(得分:5)

将您的界面标记为公开:

public interface Interface1<T>

如果省略辅助功能标签,则默认为internal,即只能访问程序集中的其他类。

答案 2 :(得分:1)

第二个解决方案是如果您的界面不是公共的,那么在您处理界面时不要将您的类公开。