Visual Studio 2010: самый простой способ дублировать класс? - PullRequest
3 голосов
/ 15 февраля 2011

Есть ли простой способ дублировать класс с другим именем?

Ответы [ 6 ]

9 голосов
/ 16 февраля 2011

Не уверен, можно ли это квалифицировать как самый простой способ, но если у вас есть ReSharper , вы можете использовать его Копировать тип рефакторинг для копирования классов / интерфейсов / структур с контролем над Пространство имен, в которое копия попадает и присваивает ей имя. Это означает, что если вы копируете класс с 5 конструкторами, копия будет переименована в соответствии с именем нового класса.

Однако, в зависимости от того, чего вы пытаетесь достичь, лучше использовать Extract Interface или Extract Superclass .

7 голосов
/ 15 февраля 2011
  • Открыть файл в Visual Studio.
  • Нажмите Ctrl+A.
  • Нажмите Ctrl+C.
  • Создайте новый файл для нового класса.
  • Нажмите Ctrl+V в новом файле.
  • Заменить все старые имена классов новыми. (Ctrl+H)
6 голосов
/ 15 февраля 2011

Нет, нет инструмента рефакторинга для дублирования класса, но с другим именем.

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

4 голосов
/ 15 февраля 2011

Рефакторинг, чтобы дать новое имя, скопировать, отменить, вставить :-) Запомните отмена!Это переименует конструкторы и финализаторы!

1 голос
/ 15 февраля 2011

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

1 голос
/ 15 февраля 2011

Скопируйте, вставьте и дайте классу новое имя?

Как правило, не очень хорошая идея просто копировать код и давать ему новое имя класса. Похоже, вы хотите что-то делать с наследованием / интерфейсами?

Как насчет создания базового класса и последующего использования этого базового класса для других классов, имеющих одинаковую / близкую к той же функциональности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...