![]() |
|
Сложное наследование (sealed internal а-ля protected internal)24.02.2014, 15:02. Показов 4486. Ответов 4
Приветствую Вас и прошу оказать содействие
Вопрос связан с наследованием. Есть 2 тяжелых случая: 1й: Есть 2 класса A1 и A11:A1, нужно чтобы оба были не наследуемыми (sealed) Очевидно что A11 можно объявить sealed без сожаления - это будет правильно. А вот А1 объявить как sealed не получится - от него наследуется A11. Для этого нужна фича по аналогии с (protected internal) (protected вне текущей сборки и public внутри текущей сборки). 2й: Есть класс C1 и есть классы C11:C1, C12:C1, C13:C1. Нужно чтобы классы C11, C12, C13 были public, а вот класс C1 имел с-ва private вне текущей сборки. Я понимаю что все это можно обойти с помощью инкапсуляции, делегирования и прочих шаблонов и их комбинаций, но все-же, вдруг есть какое-нить решение "из коробки"? Слушаю Ваш ответ )))
0
|
24.02.2014, 15:02 | |
Ответы с готовыми решениями:
4
Internal compiler error: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.ast.ReferenceExpr Получить доступ к методам "internal static" находящимся в класе "internal static class" |
Master of Orion
![]() ![]() |
|
24.02.2014, 23:09 | |
sigmov, в C# есть только 4 общеизвестных модификатора доступа, никаких protected internal, никаких публичных/приватных наследований, никаких виртуальных наследований - все четко и понятно. Поэтому объявляете один класс, как sealed, у второго максимум можете написать sealed для всех методов. Но очевидно, в архитектуре большой косяк. У меня так было, когда список наружу выставлял вместо интерфейса все свои внутренности, это был переход с паскаля на C# и я тогда понятия не имел о четырех китах ООП.
Во втором случае тоже ничего не получится сделать, компилятор выдаст ошибку, если класс-родитель будет иметь более жесткий модификатор, чем наследник, потому что это, опять же, рушит все ООП.
0
|
![]() |
||||||||
25.02.2014, 11:37 [ТС] | ||||||||
Кликните здесь для просмотра всего текста
protected internal Доступ к типу или элементу может осуществляться любым кодом в сборке, в которой он объявлен, или из наследованного класса другой сборки. Доступ из другой сборки должен осуществляться в пределах объявления класса, производного от класса, в котором объявлен защищенный внутренний элемент, и должен происходить через экземпляр типа производного класса.
В защиту 2го вопроса про сокрытие C1 - работает же код
1
|
Администратор
![]() ![]() |
|||
25.02.2014, 16:51 | |||
0
|
Master of Orion
![]() ![]() |
||||||||
25.02.2014, 19:14 | ||||||||
sigmov,
Добавлено через 4 минуты
0
|
25.02.2014, 19:14 | |
Помогаю со студенческими работами здесь
5
Internal Error Рефлексия и internal Internal storage
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
|
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать?
Entity Framework — это. . .
|
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
|
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
|
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Опубликовано: 07. 07. 2025
Рубрика: Uncategorized
Автор: AlexA
Статья размещается на сайте с разрешения. . .
|
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
|
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
|
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском
https:/ / vkvideo. ru/ video-231374465_456239020
На английском
https:/ / www. youtube. com/ watch?v=oskqtCrWns0
Исходники примера:
|
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
|
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
|