2013-05-07 42 views
13

在書面方式將此代碼到我的項目我得到的錯誤如何解決錯誤:不一致的可訪問性:泛型C#接口的參數類型?

Error 1 Inconsistent accessibility: field type 'System.Collections.Generic.List<Jain_milan.Childrendata>' is less accessible than field 'Jain_milan.addchild.m_children'
Error 2 Inconsistent accessibility: parameter type 'System.Collections.Generic.List<Jain_milan.Childrendata>' is less accessible than method 'Jain_milan.addchild.addchild(System.Collections.Generic.List<Jain_milan.Childrendata>)'

namespace Jain_milan 
{ 
     public partial class addchild : Form 
     { 
      List<Label> label = new List<Label>(); 
      List<TextBox> textbox = new List<TextBox>(); 
      List<ComboBox> combobox = new List<ComboBox>(); 
      List<DateTimePicker> datetimepicker = new List<DateTimePicker>(); 
      public List<Childrendata> m_children = new List<Childrendata>(); 
      public addchild(List<Childrendata> children) 
      { 
       InitializeComponent(); 
       this.m_children = children; //Initialize the same List as sent by Mainform 
      } 
+3

難道你不明白什麼部分消息的? – SLaks 2013-05-07 13:46:13

+3

仔細檢查您正在使用的類上的訪問修飾符。 – 2013-05-07 13:46:46

+2

這就是說公共物品正在使用私人類型。確保訪問修飾符一致 – devshorts 2013-05-07 13:48:19

回答

26

沒有發佈您的整個相關的代碼,我會嘗試一種預感:

Childrendata被聲明爲非公開和(因爲我們可以看到)變量m_children is public

因此,公共變量無法顯示瑟較少訪問的類型,在這種情況下,Childrendata

此外,你可能想要的是把m_children私人以及這通常是最好的做法

+1

一旦引用的錯誤被清除,它就更清晰了,因爲原來的問題是吞下'<>'尖括號。 – 2013-05-07 13:53:34

2

Childrendata是不公開的。那麼,你如何期望有人呼叫addchild能夠提供所需的參數?

明顯的修復方法是更改​​addchildChildrendata的可訪問性。

6

我的猜測是,Childrendata類是private(或internal,或不指定可見性修飾符隱含internal

由於List<Childrendata> m_children是公開的,Childrendata需要被公衆以及。

更改Childrendatapublic,你應該沒問題。

0

只是使該方法addChilde(List<object> childeren)或唯一對象沒有列出 然後做到這一點

var Listchild = childeren as List<childe>; 
相關問題