Сгенерировать заглушку метода

Обновлен: Ноябрь 2007

Генерирование заглушки метода является функцией автоматического генерирования кода IntelliSense, которая позволяет использовать Visual Studio для создания нового объявления метода при написании вызова метода. Visual Studio выводит объявление из вызова.

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

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

Заметки

Вызов через смарт-теги

Смарт-тег указывает на возможность вызова операции генерирования заглушки метода. Смарт-тег доступен когда курсор расположен в вызове метода и появляется если Visual Studio не удается обнаружить метод с тем же именем и числом параметров, что у вызываемого метода. Появившийся смарт-тег отображается под крайним левым знаком идентификатора метода. Если убрать курсор с вызова метода смарт-тег исчезает.

Команду Сгенерировать заглушку метода можно вызвать при помощи сочетания клавиш, меню IntelliSense или контекстного меню в Редакторе кода. Дополнительные сведения см. в разделе Практическое руководство. Генерирование заглушки метода.

Вызов вручную

Команду Сгенерировать заглушку метода можно всегда вызвать из меню IntelliSense во всех контекстах. При этом возможны перегрузки, отличающиеся исключительно типом параметров, а не их количеством. Например:

   class Program
   {
      static void Method(int a) { }

      static void Main()
      {
         Method("Call"); // No smart tag.
      }
   }

В предыдущем примере кода смарт-тег становится доступным при помещении курсора на вызове Method. Однако, при вызове команды Сгенерировать заглушку метода из меню IntelliSense, IntelliSense создает статичный метод с именем Method, который принимает строковый параметр.

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

Имена параметров

Имена каждого параметра для сгенерированной заглушки метода происходят от имен аргументов, передаваемых в вызов метода. Например:

   class Program
   {
      static void Main()
      {
         string filename = @"file.txt";
         int wordCount = CountWords(filename);
      }
   }

Команда "Сгенерировать заглушку метода" в предыдущем примере кода сгенерирует подпись метода, принимающую параметр строкового типа с именем filename.

Код, создаваемый функцией "Сгенерировать заглушку метода" моделируется фрагментом кода, определенным в файле MethodStub.snippet. Фрагменты кода являются изменяемыми. Дополнительные сведения см. в разделе Практическое руководство. Управление фрагментами кода.

Неоднозначные типы

Если тип параметра или возвращаемого значения вывести не удается, например в случае с анонимными типами или явно набранными локальными переменными (ключевое слово var), при генерации заглушки метода используется Object. Например:

   class Program
   {
      static void Main()
      {
         var filename = Method(); //Cannot infer the return type
      }
   }

В результате вызова команды "Сгенерировать заглушку метода" в Method() (см. предыдущий пример), заглушка метода возвращает Object.

См. также

Задачи

Практическое руководство. Генерирование заглушки метода

Другие ресурсы

Автоматическое генерирование кода