试图理解错误消息

时间:2012-05-10 05:38:38

标签: c#

我在VisualStudio中收到一条错误消息,我无法自行解决。消息是:

不一致的可访问性:属性类型'WindowsFormApplication1.ContactFiles.Contact'的可访问性低于属性'WindowsFormApplication1.ContactForm.ContactData'

public ContactFiles.Contact ContactData
    {
        get
        {
            return m_contact;
        }
        set
        {
            if (value != null)
                m_contact = value;
        }
    }

帮助找到此问题的错误来源!谢谢!

3 个答案:

答案 0 :(得分:5)

ContactFiles.Contact标记为public以解决错误。

您的public媒体资源ContactData正在返回非公开类型ContactFiles.Contact的实例。

答案 1 :(得分:2)

Kyle提出了一种方法,但是如果这会导致更多(类似)错误,那么你可以尝试另一种方式:让你的财产内部:

internal ContactFiles.Contact ContactData
{
    // Code as before
}

如果您需要该属性是公开的,那么您需要Contact公开...这意味着您需要查看{{1的所有公共属性查看他们是否引用内部(或私人)类型等。

基本上你不能让 public 属性返回内部(或私有嵌套)类型 - 它会有效地说“你可以使用它,但是你”我不会知道任何关于我将要回归的事情“这是没有意义的。普通方法的参数和返回类型也是如此。您也无法从内部派生公共类。

答案 2 :(得分:0)

当您尝试在公共可用的方法中返回内部或私有对象时,会发生此异常。如果您尝试将私有已知的目标提供给公共方法

,则会发生同样的异常