Свойство не может быть объявлено общедоступным, так как его тип использует внутренний тип


Я создал два класса Content и Bucket. Bucket содержит массив Content объекты и предоставляет это через публичное свойство. Однако, когда я это делаю, я получаю сообщение об ошибке:

свойство не может быть объявлено общедоступным, поскольку его тип использует внутренний тип

любые мысли о том, почему это ошибки?

2 58

2 ответа:

вы должны объявить уровень доступа Content класс public, а также.

public class Content {
   // some code
}

как говорится в документация:

открытая переменная не может быть определена как имеющая внутреннюю или частную тип, потому что тип может быть доступен не везде, где используется открытая переменная.

классы объявлены как internal по умолчанию, так что вы должны добавить public ключевое слово, чтобы сделать их общественный.

аналогичное правило существует и для функций.

функция не может иметь более высокий уровень доступа, чем его типы параметров и возвращаемый тип, потому что функция может использоваться в ситуациях где его составные типы недоступны для окружающего кода.

Content должен быть объявлен как public:

public class Content {
  …
}

в зависимости от вашего варианта использования вы можете объявить Bucket как внутренних, тоже. Просто опустите public ключевое слово в этом случае.