#c# #visual-studio
#c# #visual-studio
Вопрос:
Предположим, у меня есть a partial class
в моем приложении.
Допустим, у меня открыта одна часть этого класса в Visual Studio, и я хочу найти другие части. Как я могу это сделать? Есть ли сочетание клавиш или любой другой метод, который я могу использовать для быстрого перехода к другим частям моего класса?
Это было бы полезно, потому что в большом приложении так много отдельных файлов * .cs, что ручной поиск частичных классов становится очень неэффективным.
Комментарии:
1. Выберите <имя_класса> и нажмите F12, вы найдете их в списке в окне поиска символа
Ответ №1:
Если вы откроете контекстное меню имени класса и нажмете «Перейти к определению (F12)», то внизу (по умолчанию) Visual Studio появится панель «Найти результаты символов». Здесь вы найдете все (частичные) определения этого класса.
Комментарии:
1. спасибо за ответ …. на самом деле я в замешательстве, потому что у меня есть одно приложение, загруженное из СЕТИ, в котором класс определяется как частичный класс, но, хотя у него нет другой части, у него есть только одна часть, хотя это частичный класс…
2. Частичный класс может состоять из одной или нескольких частей. Так что, возможно, вы найдете только одно определение. Если это так, то панель на скриншоте выше не будет отображаться при переходе к определению класса.
3. да … точно … если существует только одна часть частичного класса, то ….. перейти к определению не покажет вышеупомянутое окно……. Еще раз большое спасибо за ответ….
4. 2 частичных класса = 2 результата, 3 частичных класса = 3 результата, 4 частичных класса = 4 результата, значит, n частичных классов = n результатов? Не глупо. 1 частичный класс = 0 результатов. Сумасшедшая вещь — кто-то тратит дополнительное время на кодирование, делая ответ более двусмысленным. «Если существует только один частичный класс, мы ничего не должны показывать, потому что, очевидно, это менее двусмысленно, чем просто показывать единственный результат, который у нас уже есть, чтобы знать, что есть только один».
5. @Gerald «перейти к определению» предшествует частичным классам, которые были введены в C # 2. «Частичное окно» было добавлено позже, и, очевидно, когда существует только одно определение класса, «Перейти к определению» должно идти непосредственно туда.
Ответ №2:
В моем случае (Visual Studio 2013, а также Visual Studio 2015) решение, описанное CodeCaster, не сработало для меня — результаты поиска символов не отображаются, как описано в ответе.
Но я нашел 2 других способа решить эту проблему, которые работают для меня. Выполните следующие действия:
Решение 1
Протестировано с Visual Studio 2013/2015, Visual Studio 2017 и Visual Studio 2019
- Щелкните правой кнопкой мыши и выберите «Перейти к определению». Это откроет одну из (возможно, многих, но в большинстве случаев две) частей класса.
- Поместите курсор на имя класса, чтобы отметить его, т.е.
public partial class
MyClass
-
ПрессаF12. Откроется окно «объявления». Щелкните по нему, чтобы сфокусироваться.
-
НажмитеF8, чтобы перейти к следующему, или SHIFT F8, чтобы перейти к предыдущему объявлению (или щелкните мышью на кнопках предыдущий / следующий).
Примечание: только если существует более 1 частичного класса, вы увидите имена файлов, в которых находятся части класса:
Решение 2
Протестировано в Visual Studio 2017
- Поместите курсор на имя класса, чтобы отметить его, т.е.
public partial class
MyClass
- Нажмите ALT SHIFTF12. Это приведет к поиску символа, выбранного во всем решении.
- Все вхождения класса перечислены в окне результатов поиска символа.
Недостатком решения 2 является то, что ссылки также перечислены, а не только частичные классы.
Обновленный ответ для более новых версий Visual Studio (2019).
Комментарии:
1. Результаты поиска символов (это имя окна, а не имя команды). Все еще существует в VS2013. Возможно, вы скрыли это окно, и в этом случае оно не появится. Просмотр> Найти результаты> Найти результат символа, чтобы снова сделать его не скрытым.
2. @Gerald: Спасибо за подсказку, полезно знать, откуда можно открыть это окно. В моем случае это не помогло, возможно, потому, что я использую ReSharper (если вы используете контекстное меню «Перейти к объявлению», окно результатов поиска символа остается пустым).