1

Просто нужна помощь с вложенными классами и наследованием ..C# Вложенные классы и наследование

namespace blah 
{ 
    private abstract class InheritedSomething 
    { 
     public void doSomething() {}; 
    } 

    class OtherClass : InheritedSomething 
    { 
     //Stuff 

     class NestedClass : InheritedSomething 
     { 
      //Stuff 
     } 
    } 
} 

Является ли это правильный способ делать вещи? Кажется немного избыточным, что NestedClass наследует InerhitedSomething, когда его родительский класс уже наследует это ... Но когда я удаляю наследование от NestedClass, он просит меня сделать doSomething() статическим методом.

Так что мой вопрос, какой путь «правильный» - Оба OtherClass и NestedClass наследуя InheritedSomething или только OtherClass наследует InheritedSomething и doSomething() становится public static void?

Спасибо!

+0

Должно ли что-то иметь ту же реализацию в обоих классах? Или doSomething отличаются в OtherClass vs NestedClass? –

ответ

0

В этом дизайне нет ничего плохого.

Предложение о том, что метод может быть статичным, является полностью отдельной проблемой. Обратите внимание, что может не означает, что он должен. (Подробнее об определении here или here). Когда вы удаляете наследование, doSomething больше не переопределяет, что делает его подходящим для проверки на это предложение.

0

Правильно или нет, зависит от того, что вы намереваетесь сделать.

Внутренние типы имеют привилегированный доступ к охватывающим элементам типа, но не выводятся из него.

Каково ваше намерение с этими классами?

 Смежные вопросы

  • Нет связанных вопросов^_^