错误不一致的可访问性
问题描述:
我正在开发一个Windows窗体应用程序。当我运行它时,它给了我一个可访问性问题。请将我拉出来。错误不一致的可访问性
的MainForm代码是
namespace Tutorial2_WebForms
{
public partial class FormMain : Form
{
private UserDetails mainUD;
public UserDetails MainUD
{
get { return mainUD; }
set { mainUD = value; }
}
的UserDetails类将是如下
和错误是
答
您的用户细节类是私有的,因为您尚未指定访问修饰符,而您的MainUD属性是公共的。
用户详细信息类应公开。
public class UserDetails
{
...
}
public partial class FormMain : Form
{
private UserDetails mainUD;
public UserDetails MainUD
{
get { return mainUD; }
set { mainUD = value; }
}
}
答
UserDetails
是内部的,但你使用它作为一个MainForm
财产public
。这是因为类别类型的默认访问修饰符是内部。使UserDetails
公开,一切都会好的。
答
您的UserDetails
类没有指定访问修饰符,所以默认为internal
(即它只能由同一个程序集内的类访问)。
您有一个公开课(FormMain),它公开了UserDetails
类,但客户端实际上并没有访问权限,因为它受到保护。因此,你的编译器出错了。
修复方法是将UserDetails
更改为公共。
答
您需要使类UserDetails
public
。类是internal
默认:
public class UserDetails
{
...
由于您的形式是public
,并通过这个类必须public
以及财产公开UserDetails
类。
答
马克的UserDetails类作为
public class UserDetails
{
...
}
原因是当有人将访问他们会看到一个返回类型,否则是不存在的属性。默认情况下,该类标记为内部。
但是当我将UserDetails对象(mainUD)更改为public时,它也会被强调为MainUD。并给出相同的错误两次 –
您是否更改了用户详细信息类定义或表单上的属性? – WraithNath
是的,谢谢..它应该是公共类UserDeatails –