Как решить проблему: Непоследовательная доступность: тип параметра для общего интерфейса С#?

При написании этого кода в моем проекте я получаю сообщение об ошибке

Ошибка 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
            }

Ответы

Ответ 1

Не публикуя весь соответствующий код, я попробую предсказать:

класс Childrendata​​strong > объявлен как непубличный и (как мы видим) переменная m_children является общедоступной

Прежде чем публичная переменная не сможет открыть менее доступный тип, в этом случае Childrendata​​strong >

Кроме того, вы можете захотеть превратить m_children в частную, а это, как правило, самая лучшая практика.

Ответ 2

Я предполагаю, что класс Childrendata private (или internal или неявно internal, не указав модификатор видимости)

Поскольку List<Childrendata> m_children является общедоступным, Childrendata также должен быть общедоступным.

Измените Childrendata на public, и все будет в порядке.

Ответ 3

Childrendata не является общедоступным. Как же вы ожидаете, что кто-то позвонит addchild, чтобы предоставить требуемый параметр?

Очевидными исправлениями являются изменение доступности addchild или Childrendata.

Ответ 4

просто введите метод addChilde(List<object> childeren) или только объект не список то сделайте это

var Listchild = childeren as List<childe>;