achraf boumessouer Ответов: 4

Несогласованная доступность: базовый класс менее доступен, чем класс ...


Несогласованная доступность: базовый класс 'ClassLibrary3.CDRFinal' менее доступен, чем класс 'ClassLibrary3.CDRList'

Что я уже пробовал:

Ничего

4 Ответов

Рейтинг:
2

Leo Chapiro

LMGTFY[^]

Попробуйте использовать "public" для ClassLibrary3.CDRFinal :)


Рейтинг:
2

OriginalGriff

Подумайте об этом: если класс B является производным от класса A, то класс B содержит все свойства, методы и поля класса A, а также все, что он добавляет сам.

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

Теперь предположим, что у вас есть две сборки, одна из которых содержит классы A и B, а другая пытается использовать только класс B. Если класс а недоступен из второй сборки, так как он помечен как protected, internal, или даже private но B объявляется как public код , который вы пишете, чтобы использовать его, вообще не может получить доступ к классу а - поэтому он не знает, что класс В действительно содержит и способен - и в результате вы получаете ошибку "несогласованной доступности".

Либо изменить доступа для класса A или класса B, или инкапсулировать в класс, экземпляр в Б, а не вытекающих из него.


Рейтинг:
1

User 7429338

Ваш базовый класс ClassLibrary3.CDRFinal менее доступен (например, внутренний), чем производный класс ClassLibrary3.CDRList (например, публичный).

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

Для получения более подробной информации см.:
Модификаторы Доступа (Руководство По Программированию На C#) | Microsoft Docs[^]


Рейтинг:
0

F-ES Sitecore

Эта ошибка не требует объяснений. Вероятно, вы заставляете CDRList наследовать класс CDRFinal, однако CDRFinal менее доступен, чем CDRList, другими словами, если CDRList является "публичным" классом, то CDRFinal будет "защищен" или "приватен", или что-то подобное.

Решение состоит в том, чтобы гарантировать, что базовый класс так же доступен, как и родительский класс, который включает в себя изменение одного из своих типов доступа, чтобы соответствовать другому, но мы не можем сказать вам, что должно быть изменено, чтобы соответствовать тому, что мы не знаем ваших бизнес-правил. Вероятно, это производный класс, который нужно изменить, чтобы он соответствовал базовому классу.