2013-03-20 6 views
0

Мне было интересно, знает ли кто-нибудь о расширении Visual Studio, который будет автозаполнять параметры, переданные в метод. Например, учитывая следующий код,Существует ли расширение Visual Studios, которое автоматически обрабатывает переменные метода, если существуют совпадающие имена?

private void Display(string firstName, string lastName, long phoneNumber) 
{ 
    ... 
} 

public void Example(long phoneNumber) 
{ 
    string firstName = "John"; 
    string lastName = "Doe"; 

    Display()  
} 

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

значит Display() будет автоматически преобразовано в Display(firstName, lastName, phoneNumber);?

+0

Я не знаю. ReSharper не поддерживает это. –

+0

Есть ли также расширение, которое гладит, делает кофе или дает мне холодное холодное пиво? – mattytommo

+0

ОТ: Ответ нет, но вы могли бы создать его? :) – mattytommo

ответ

0

Это ближайшее вам, возможно, достанется вам (не дожидаясь создания собственного), , но с уловом.

Произнесите Display метод не существует и код для него был внутри метода Example, например, так:

public void Example(long phoneNumber) 
{ 
    string firstName = "John"; 
    string lastName = "Doe"; 

    //Dummy code to be inside display 
    lastName += "pey"; 
    firstName += "ny"; 
} 

Теперь выделите все, чтобы перейти в метод Display, щелкните правой кнопкой мыши, выберите Рефактор, затем нажмите Метод извлечения. Что это будет делать, это дать вам диалог, в котором Visual Studio автоматически распознает параметры, необходимые для создания сигнатуры метода. Просто добавьте имя метода Display, нажмите okay в диалоговом окне и voila. Ваш новый метод находится на месте и заменен вызовом нового метода. Итак, вы в конечном итоге:

public void Example(long phoneNumber) 
{ 
    string firstName = "John"; 
    string lastName = "Doe"; 

    Display(firstName, lastName); 
} 

public void Display(string firstName, string lastName) 
{ 
    //Dummy code to be inside display 
    lastName += "pey"; 
    firstName += "ny"; 
} 
+0

Visual Studio делает это в 2010 году и далее. Нет необходимости в ReSharper. – Daryl

+0

@ Дарил А на самом деле? Я использую ReSharper, что долго те строки, что делает то, что размыто *! Отредактировано для удаления ссылок на ReSharper. – mattytommo

+0

Мы делали это с VS2005. :-) –