Как посмотреть перегрузки методов в visual studio

Обновлено: 07.07.2024

Перегрузка — это создание более чем одной процедуры, конструктора экземпляра или свойства в классе с тем же именем, но разными типами аргументов.

Перегрузка использования

Перегрузка особенно полезна, когда объектная модель определяет, что для процедур, которые работают с различными типами данных, используются одинаковые имена. Например, класс, который может отображать несколько различных типов данных, может иметь Display процедуры, которые выглядят следующим образом:

Без перегрузки необходимо создать разные имена для каждой процедуры, даже если они выполняют одно и то же действие, как показано далее:

Перегрузка упрощает использование свойств или методов, поскольку она предоставляет возможность выбора типов данных, которые можно использовать. Например, перегруженный Display метод, описанный ранее, можно вызвать с помощью любой из следующих строк кода:

во время выполнения Visual Basic вызывает правильную процедуру на основе типов данных указанных параметров.

Перегрузка правил

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

Модификаторы, такие как ByVal или ByRef , которые применяются к элементу или параметрам элемента.

Типы возвращаемых процедур

Overloads Ключевое слово является необязательным при перегрузке, но если какой-либо перегруженный член использует Overloads ключевое слово, то все другие перегруженные члены с тем же именем также должны указывать это ключевое слово.

Производные классы могут перегружать унаследованные члены с элементами, которые имеют одинаковые параметры и типы параметров, процесс, называемый теневым именем и сигнатурой. Если Overloads ключевое слово используется при затенении по имени и сигнатуре, реализация члена в производном классе будет использоваться вместо реализации в базовом классе, а все другие перегрузки для этого члена будут доступны экземплярам производного класса.

Если Overloads ключевое слово пропущено при перегрузке унаследованного члена с членом, имеющим идентичные параметры и типы параметров, перегрузка называется тенью по имени. Затенение по имени заменяет унаследованную реализацию члена и делает все другие перегрузки недоступными для экземпляров производного класса и его децедентс.

Overloads Shadows Модификаторы и не могут использоваться одновременно с одним свойством или методом.

Пример

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

Использование этого примера для создания перегруженного метода

Откройте новый проект и добавьте класс с именем TaxClass .

Добавьте в класс TaxClass приведенный далее код.

Добавьте следующую процедуру в форму.

Добавьте в форму кнопку и вызовите ShowTax процедуру из Button1_Click события кнопки.

Запустите проект и нажмите кнопку в форме, чтобы проверить перегруженную ShowTax процедуру.

Как только код был написан, единственный способ, который я знаю, чтобы просмотреть перегрузки для метода, - это фактически отредактировать метод, удалив скобки () и снова открыть их.

есть ли сочетание клавиш, которое я мог бы нажать, чтобы активировать это вместо того, чтобы редактировать мои файлы?

для примера, пожалуйста, обратитесь к Showdialog Метод Перегрузки скриншоте ниже:

ShowDialog1 Overloads

попробуйте сочетание клавиш Ctrl - Shift - пробел . Это соответствует Edit.ParameterInfo , Если вы изменили значение по умолчанию.

пример:

descriptive screenshot, by jp2code

Ctrl + Shift + пробел показывает Edit.ParameterInfo для выбранного метода, и под выбранным методом я имею в виду, что курсор находится в скобках метода.

и для тех, кто все еще используя 2008.

протестировано только в Visual Studio 2010.

поместите курсор в (), нажмите Ctrl + K , потом P .

Теперь перейдите, нажав ↑ / ↓ клавиши со стрелками.

привязка ключа по умолчанию для этого - Ctrl + Shift+Пробел

основная команда Visual Studio - Edit.ParameterInfo . Если стандартная привязка ключей не работает для вас (возможно, в некоторых профилях), вы можете изменить ее через страницу параметров клавиатуры

  • Сервис -> Параметры
  • клавиатура
  • введите Edit.Свойства parameterinfo
  • изменить сочетание клавиш
  • Нажмите Назначить

случается, что ни один из вышеперечисленных методов работы. Привязка ключа правильная, но подсказка инструмента просто не показывает в любом случае, ни как помощь завершения, ни по требованию.

Отличный вопрос; у меня была та же проблема. Оказывается, действительно есть сочетание клавиш для вызова этого списка: Ctrl+Shift+Space (вариант основного сочетания клавиш IntelliSense Ctrl+Space).

команда Edit.ParameterInfo (сопоставляется Ctrl + Shift + пробел по умолчанию) покажет подсказку перегрузки, если она вызывается, когда курсор находится внутри скобок параметров вызова метода.

команда Edit.QuickInfo (сопоставляется Ctrl + K Ctrl + Я по умолчанию) покажет подсказку, которую вы увидите, если наведете курсор местоположение.

время от времени предложения выше перестают работать, если я перезапущу Visual Studio, они снова начнут работать.

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

после того, как код был написан, единственный способ, который я знаю, чтобы просмотреть перегрузки для метода, - это фактически отредактировать метод, удалив скобку () и снова открыть их.

есть ли сочетание клавиш, которое я мог бы нажать, чтобы активировать это вместо того, чтобы редактировать мои файлы?

для примера, пожалуйста, обратитесь к Showdialog Метод Перегрузки скриншоте ниже:

ShowDialog1 Overloads

попробуйте сочетание клавиш Ctrl - Shift - пробел . Это соответствует Edit.ParameterInfo , Если вы изменили значение по умолчанию.

пример:

descriptive screenshot, by jp2code

Ctrl + Shift + пробел показывает Edit.ParameterInfo для выбранного метода, и по выбранному методу я имею в виду, что каретка находится в скобках метода.

здесь Visual Studio 2010 Keybinding Плакат.

и для тех, кто все еще используя 2008.

протестировано только в Visual Studio 2010.

поместите курсор в поле (), нажмите Ctrl + K , потом P .

Теперь перейдите, нажав кнопку ↑ / ↓ клавиши со стрелками.

  • Сервис -> Параметры
  • клавиатура
  • введите изменить.ParameterInfo
  • изменить сочетание клавиш
  • Нажмите Назначить

Отличный вопрос; у меня была та же проблема. Оказывается, действительно есть сочетание клавиш для вызова этого списка: Ctrl + Shift+Space (вариант основного сочетания клавиш IntelliSense Ctrl+Space).

  • команда Edit.ParameterInfo (сопоставляется Ctrl + Shift + пробел по умолчанию) покажет подсказку перегрузки, если она вызывается, когда курсор находится внутри скобок параметров вызова метода.

  • команда Edit.QuickInfo (сопоставляется Ctrl + K Ctrl + Я по умолчанию) покажет подсказку, которую вы увидите, если вы нажмете на курсор местоположение.

время от времени предложения выше перестают работать, если я перезапущу Visual Studio, они снова начнут работать.

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

мой появился в VS2010 после написания первой скобки..

Так, коляски.Добавить(

после совершения чего-то подобного, появился ящик со стрелками вверх и вниз.

Как только код был написан, единственный способ узнать перегрузки для метода - это фактически отредактировать метод, удалив Parenthesis () и снова его запустив.

Есть ли клавиша быстрого доступа, которую я мог бы нажать, чтобы активировать это вместо того, чтобы редактировать мои файлы?

Для примера обратитесь к экрану ShowDialog Overload:

Изображение 7926

Что случилось со старыми добрыми стрелками вверх и вниз? @Zapnologica: стрелки вверх и вниз все еще существуют, но поле IntelliSense необходимо активировать и открыть, прежде чем эти стрелки можно будет использовать для прокрутки параметров перегрузки. Этот вопрос о том, как открыть окно IntelliSense . Как вы можете сделать его открытым по умолчанию, управляющее пространство против управляющего пространства смещения @Zapnologica: я использую последовательность Control + Shift + Space , как в комбинации старого стиля Control + Alt + Delete . В VS2012 он открывался по умолчанию, когда я набирал открывающую скобку после имени функции, но, похоже, он больше этого не делает, так как я установил ReSharper. Вместо этого он предоставляет выпадающее меню возможных переменных / функций для заполнения в первом аргументе. Довольно раздражает.

Попробуйте сочетание клавиш Ctrl - Shift - Space . Это соответствует Edit.ParameterInfo , если вы изменили значение по умолчанию.

Пример:

Изображение 106608

По крайней мере в VS 2008 кажется, что ваш курсор должен быть в скобках, чтобы этот ярлык работал. Кроме того, спасибо за публикацию, я не знал, что это существовало! Теперь, если бы был только способ сделать это по умолчанию.

Ctrl + Shift + Space показывает Edit.ParameterInfo для выбранного метода, и под выбранным методом я имею в виду, что каретка должна находиться в скобках метода.

И для тех, кто все еще использует 2008.

Вау, теперь ты выглядишь намного сексуальнее, чем моя с твоими модными клавишными метками! Я не могу этого допустить! +1, и еще +1 для Нила, если он скажет мне, как это сделать здесь.

Проверено только на Visual Studio 2010.

Поместите курсор в поле(), нажмите Ctrl + K , затем P .

Теперь перемещайтесь, нажимая клавиши со стрелками ↑ / ↓ .

Возможно, я делаю что-то не так, но я не могу заставить это работать в VS2008 или VS2010. Это ярлык VS2010 (не уверен насчет 2008 года) - но, возможно, вы его изменили или инструмент, который вы установили, похитил ярлык. Это то, что я искал. Что-то похожее на Ctrl + Q в IntelliJIdea / Android Studio.

Связывание по умолчанию для этого - Ctrl+Shift+Space

Основная команда Visual Studio - Edit.ParameterInfo . Если стандартное связывание ключей не работает для вас (возможно в некоторых профилях), вы можете изменить его с помощью страницы параметров клавиатуры

Очень хорошо! Для еще одного +1, не могли бы вы сказать мне, как создать эту графику Ctrl+Shift+Space ? @jp2code jp2code для создания графики используйте теги <kbd> . Пример <kbd>Shift</kbd> @jp2code jp2code, если вы откроете в режиме редактирования, вы также можете увидеть используемые теги.

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

Читайте также: