13

在将此代码写入我的项目时,我收到错误消息

错误 1 ​​可访问性不一致:字段类型'System.Collections.Generic.List<Jain_milan.Childrendata>'的可访问性不如字段'Jain_milan.addchild.m_children'
错误 2 可访问性不一致:参数类型'System.Collections.Generic.List<Jain_milan.Childrendata>'的可访问性不如方法'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
            }
4

5 回答 5

28

在不发布您的整个相关代码的情况下,我会尝试一个预感:

Childrendata被声明为非公开,并且(如我们所见)变量m_children是公开的

因此,公共变量不能公开访问较少的类型,在这种情况下,Childrendata

此外,您可能想要将m_children 设为私有,这通常是最佳实践

于 2013-05-07T13:50:56.757 回答
6

我的猜测是Childrendata该类是private(或internal,或隐含地internal通过不指定可见性修饰符)

既然List<Childrendata> m_children是公开的,Childrendata也需要公开。

更改Childrendatapublic,你应该没问题。

于 2013-05-07T13:53:50.463 回答
2

Childrendata不公开。那么,您如何期望调用addchild的人能够提供所需的参数?

明显的修复是更改 or 的可访问addchildChildrendata

于 2013-05-07T13:52:22.230 回答
0

只需使方法addChilde(List<object> childeren)或唯一对象不列出然后执行此操作

var Listchild = childeren as List<childe>;
于 2015-07-21T09:03:52.017 回答
0

您不能两次使用访问修饰符。如果您使用公共类,则不应使用公共实例。public partial class Record : ContentPage { List datas = new List() { 我使用记录类 public 但不是列表。

于 2018-10-19T20:20:13.213 回答