我在VisualStudio中收到一条错误消息,我无法自行解决。消息是:
不一致的可访问性:属性类型'WindowsFormApplication1.ContactFiles.Contact'的可访问性低于属性'WindowsFormApplication1.ContactForm.ContactData'
public ContactFiles.Contact ContactData
{
get
{
return m_contact;
}
set
{
if (value != null)
m_contact = value;
}
}
帮助找到此问题的错误来源!谢谢!
答案 0 :(得分:5)
将ContactFiles.Contact
标记为public
以解决错误。
您的public
媒体资源ContactData
正在返回非公开类型ContactFiles.Contact
的实例。
答案 1 :(得分:2)
Kyle提出了一种方法,但是如果这会导致更多(类似)错误,那么你可以尝试另一种方式:让你的财产内部:
internal ContactFiles.Contact ContactData
{
// Code as before
}
如果您需要该属性是公开的,那么您需要Contact
公开...这意味着您需要查看{{1的所有公共属性查看他们是否引用内部(或私人)类型等。
基本上你不能让 public 属性返回内部(或私有嵌套)类型 - 它会有效地说“你可以使用它,但是你”我不会知道任何关于我将要回归的事情“这是没有意义的。普通方法的参数和返回类型也是如此。您也无法从内部派生公共类。
答案 2 :(得分:0)
当您尝试在公共可用的方法中返回内部或私有对象时,会发生此异常。如果您尝试将私有已知的目标提供给公共方法
,则会发生同样的异常