Несогласованная доступность: базовый класс менее доступен, чем класс ...
Несогласованная доступность: базовый класс 'ClassLibrary3.CDRFinal' менее доступен, чем класс 'ClassLibrary3.CDRList'
Что я уже пробовал:
Ничего
Подумайте об этом: если класс B является производным от класса A, то класс B содержит все свойства, методы и поля класса A, а также все, что он добавляет сам.
Таким образом, чтобы использовать класс B в вашем приложении, ваш код должен иметь доступ ко всем функциям класса A независимо от того, где он находится в приложении.
Теперь предположим, что у вас есть две сборки, одна из которых содержит классы A и B, а другая пытается использовать только класс B. Если класс а недоступен из второй сборки, так как он помечен как protected
, internal
, или даже private
но B объявляется как public
код , который вы пишете, чтобы использовать его, вообще не может получить доступ к классу а - поэтому он не знает, что класс В действительно содержит и способен - и в результате вы получаете ошибку "несогласованной доступности".
Либо изменить доступа для класса A или класса B, или инкапсулировать в класс, экземпляр в Б, а не вытекающих из него.
Ваш базовый класс ClassLibrary3.CDRFinal менее доступен (например, внутренний), чем производный класс ClassLibrary3.CDRList (например, публичный).
Вы можете исправить это, сделав базовый класс таким же уровнем доступа, как и производный класс, или ограничив производный класс.
Для получения более подробной информации см.:
Модификаторы Доступа (Руководство По Программированию На C#) | Microsoft Docs[^]
Эта ошибка не требует объяснений. Вероятно, вы заставляете CDRList наследовать класс CDRFinal, однако CDRFinal менее доступен, чем CDRList, другими словами, если CDRList является "публичным" классом, то CDRFinal будет "защищен" или "приватен", или что-то подобное.
Решение состоит в том, чтобы гарантировать, что базовый класс так же доступен, как и родительский класс, который включает в себя изменение одного из своих типов доступа, чтобы соответствовать другому, но мы не можем сказать вам, что должно быть изменено, чтобы соответствовать тому, что мы не знаем ваших бизнес-правил. Вероятно, это производный класс, который нужно изменить, чтобы он соответствовал базовому классу.