错误不一致的可访问性

问题描述:

我正在开发一个Windows窗体应用程序。当我运行它时,它给了我一个可访问性问题。请将我拉出来。错误不一致的可访问性

的MainForm代码是

namespace Tutorial2_WebForms 
{ 
    public partial class FormMain : Form 
    { 
     private UserDetails mainUD; 

     public UserDetails MainUD 
     { 
      get { return mainUD; } 
      set { mainUD = value; } 
     } 

enter image description here

的UserDetails类将是如下

enter image description here

错误enter image description here

您的用户细节类是私有的,因为您尚未指定访问修饰符,而您的MainUD属性是公共的。

用户详细信息类应公开。

public class UserDetails 
{ 
    ... 
} 



public partial class FormMain : Form 
{ 
     private UserDetails mainUD; 

     public UserDetails MainUD 
     { 
      get { return mainUD; } 
      set { mainUD = value; } 
     } 
} 
+0

但是当我将UserDetails对象(mainUD)更改为public时,它也会被强调为MainUD。并给出相同的错误两次 –

+1

您是否更改了用户详细信息类定义或表单上的属性? – WraithNath

+0

是的,谢谢..它应该是公共类UserDeatails –

UserDetails是内部的,但你使用它作为一个MainForm财产public。这是因为类别类型的默认访问修饰符是内部。使UserDetails公开,一切都会好的。

您的UserDetails类没有指定访问修饰符,所以默认为internal(即它只能由同一个程序集内的类访问)。

您有一个公开课(FormMain),它公开了UserDetails类,但客户端实际上并没有访问权限,因为它受到保护。因此,你的编译器出错了。

修复方法是将UserDetails更改为公共。

您需要使类UserDetailspublic。类是internal默认:

public class UserDetails 
{ 
    ... 

由于您的形式是public,并通过这个类必须public以及财产公开UserDetails类。

马克的UserDetails类作为

public class UserDetails 
{ 
... 
} 

原因是当有人将访问他们会看到一个返回类型,否则是不存在的属性。默认情况下,该类标记为内部。