尝试理解错误消息
本文关键字:错误 消息 | 更新日期: 2023-09-27 18:33:54
我在VisualStudio中收到一条错误消息,我无法自行解决。消息是:
可访问性不一致:属性类型"WindowsFormApplication1.ContactFiles.Contact"比属性"WindowsFormApplication1.ContactForm.ContactData"更难访问
public ContactFiles.Contact ContactData
{
get
{
return m_contact;
}
set
{
if (value != null)
m_contact = value;
}
}
感谢帮助找到此问题的错误源!谢谢!
将
ContactFiles.Contact
标记为public
以解决错误。
您的public
属性ContactData
将返回非公共类型ContactFiles.Contact
的实例。
Kyle 提出了一种方法,但如果这会导致更多(类似)错误,那么您可以尝试另一种方式: 使您的属性内部:
internal ContactFiles.Contact ContactData
{
// Code as before
}
如果您需要该属性是公共的,那么您将需要Contact
是公共的......这意味着您需要查看Contact
的所有公共属性,以查看它们是否引用内部(或私有)类型等。
基本上,你不能让公共属性返回内部(或私有嵌套)类型 - 它实际上是在说"你可以使用它,但你不被允许知道我将返回什么",这是没有意义的。对于常规方法的参数和返回类型也是如此。您也不能从内部类派生公共类。
当您尝试在公共可用的方法中返回内部或私有对象时,会发生此异常。如果您尝试将私有已知对象提供给公共方法,则会发生相同的异常