Есть ли в C# понятие закрытого и защищенного наследования?

Нет. Какая польза от разрешения visual-c# такого типа ограничений?

Частное .cs-file и защищенное наследование c#-language хорошо для инкапсуляции (сокрытия .cs-file информации). Защищенное * наследование csharp поддерживается в C++, но inherit не в Java. Вот пример из c#-language моего проекта, где это было .cs-file бы полезно.

Существует базовый inherit класс в качестве стороннего inheritance фреймворка **. У него есть csharp десятки настроек, а также visual-c# свойства и методы для управления visual-c# ими. Базовый класс не выполняет inherit много проверок, когда назначаются visual-c# отдельные параметры, но позже .cs-file он сгенерирует исключение, если c#.net обнаружит недопустимую комбинацию.

Я visual-c# создаю дочерний класс с методами .cs-file для назначения этих настроек inheritance (например, например, назначение inheritance тщательно созданных настроек c-sharp из файла). Было бы неплохо c#-language запретить остальной части c# кода (за пределами моего inherit дочернего класса) управлять visual-c# отдельными настройками и csharp портить их.

Тем не менее, я c# думаю, что в C++ (который, опять c-sharp же, поддерживает частное c#-language и защищенное наследование) можно c-sharp преобразовать дочерний класс inherit в родительский и получить inheritence доступ к открытым членам c-sharp родительского класса. (См. Также c#.net Chris Karcher's post) Тем не менее, защищенное c-sharp наследование улучшает скрытие c#-language информации. Если члены класса c-sharp B1 должны быть действительно inheritence скрыты внутри других классов .cs-file C1 и C2, это можно организовать, создав inheritance защищенную переменную класса c# B1 внутри C1 и C2. Защищенный c-sharp экземпляр B1 будет доступен c#-language потомкам C1 и C2. Конечно, сам c# по себе этот подход не обеспечивает inheritence полиморфизма между C1 и C2. Но csharp можно добавить полиморфизм visual-c# (при желании), унаследовав inheritence C1 и C2 от общего интерфейса inheritance I1.

*** Для краткости будем c#-language использовать «защищенный» вместо c-sharp «частный и защищенный».

** В c#.net моем случае - National Instruments .cs-file Measurement Studio.

  • Ник

c#

inheritance

2022-10-24T10:28:47+00:00
Вопросы с похожей тематикой, как у вопроса:

Есть ли в C# понятие закрытого и защищенного наследования?