2014-02-28 91 views
0

我正在開發一個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

回答

2

您的用戶細節類是私有的,因爲您尚未指定訪問修飾符,而您的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 –

2

UserDetails是內部的,但你使用它作爲一個MainForm財產public。這是因爲類別類型的默認訪問修飾符是內部。使UserDetails公開,一切都會好的。

2

您的UserDetails類沒有指定訪問修飾符,所以默認爲internal(即它只能由同一個程序集內的類訪問)。

您有一個公開課(FormMain),它公開了UserDetails類,但客戶端實際上並沒有訪問權限,因爲它受到保護。因此,你的編譯器出錯了。

修復方法是將UserDetails更改爲公共。

1

您需要使類UserDetailspublic。類是internal默認:

public class UserDetails 
{ 
    ... 

由於您的形式是public,並通過這個類必須public以及財產公開UserDetails類。

1

馬克的UserDetails類作爲

public class UserDetails 
{ 
... 
} 

原因是當有人將訪問他們會看到一個返回類型,否則是不存在的屬性。默認情況下,該類標記爲內部。