Итак, я просмотрел много связанных вопросов, и ни один из них, кажется, не подходит полностью.По крайней мере, в моем нынешнем понимании.Поскольку это простая проблема, я собираюсь быть кратким с моим вопросом и кодом.
У меня есть пять классов:
internal class A
internal abstract class B : A
internal abstract class C : B
public class D : C
public class E {
public void X(C c) { }
}
Здесь есть очевидная проблема доступности с параметромC
используется в public
методе.Мне нужно получить доступ к классу D
, не выставляя класс C
.Я полагаю, что это может быть связано с природой ключевого слова abstract
и моим минимальным опытом его использования.
На сегодняшний день у меня никогда не было известной необходимости создавать класс abstract
, и этоя впервые имею дело с этим на этом уровне.Насколько я понимаю, в этом случае нет необходимости использовать abstract
классы, если я не забываю правильно все реализовать.
Мои вопросы
- СледуетЯ создаю класс
F
, который имеет частный экземпляр D
в качестве оболочки для предотвращения экспозиции? - Что является веской причиной для использования
abstract
, поскольку я не верю, что этот кодхороший пример этого. - Какие еще способы я могу выставить
D
, не подвергая A
, B
или C
?
Примечания
- Я пытаюсь провести хирургическое вмешательство с моими текущими изменениями.
- Изначально все классы были частными.
Я просмотрел много похожих постов (Вот некоторые из них):