Visual studio CTRL + SHIFT + T транспонировать - что он делает?
Я написал код и попробовал Ctrl + T проверить функцию транспонирования в visual studio.
Просто, чтобы проверить, что Ctrl + Shift + T делает обратное для этого транспонирования... Я попытался нажать Ctrl + Shift + T.
и это просто испортило все...
Может ли кто-нибудь сказать мне, что именно это делает Ctrl + Shift + T (особенно с блоком)?
Например:
public string returnDateTimeToMyformat(DateTime dt)
{
dt = dt.AddYears(-1);
return dt.ToString("yyyy MM dd HH mm ss");
}
To:
string returnDateTimeToMyformat publicdtDateTime (dt
{
dt = )1AddYears(-.return;
dt ).ToString("yyyy MM dd HH mm ss");
}
(Я начал с моего курсора сразу после "public" )
Ответы
Ответ 1
Так как CTRL-T меняет местами два символа с обеих сторон курсора, противоположное ему...
дождитесь его...
CTRL-T
: -)
CTRL SHIFT T переносит два слова после курсора.
То, что он делает с вашим блоком, кажется довольно странным. Похоже, что это делается с несколькими частями каждой строки. Мой единственный совет был бы (поскольку врач сказал пациенту, который жаловался, что он болит, когда он ударяет головой о стену): Не делайте этого.
Ответ 2
Как указывали другие, два слова, следующие за курсором, транспонируются, а курсор помещается после слов, которые были транспонированы. Однако Visual Studio 2010 по крайней мере, по-видимому, игнорирует запятые и другую пунктуацию при рассмотрении "слов". Таким образом, одна из возможностей этого заключается в том, что вы можете переупорядочить что-то вроде перечисления. Например,
typedef enum myEnum
{
ThingOne,
ThingThree,
ThingTwo
};
Поместите курсор где-нибудь рядом с ThingThree и нажмите Ctrl Shift T, чтобы получить:
typedef enum myEnum
{
ThingOne,
ThingTwo,
ThingThree
};
Это может быть хорошо, если вы решите, что другой порядок для ваших перечислений лучше. Вы также можете использовать это, чтобы помочь сравнивать идиотипические сравнения и/или быстро и легко форматировать их до лучшего стандарта кодирования.
if ( ptr == NULL ) { /* stuff */ }
считается плохим (неважно, что наличие "если" на его собственной линии также плохо), поскольку вы можете легко написать (или прочитать) "ptr = NULL" случайно. Вам лучше с
if ( NULL == ptr ) { /* stuff */ }
Итак, если вы сделали это неправильно в первый раз, просто выберите нарушающее выражение и... Ctrl Shift T на помощь!
... Да, ладно, так что это не так полезно.
Edit: Хм, я должен добавить, что поведение немного страннее, когда ваш курсор помещается непосредственно перед символом пунктуации (например, левая скобка), следовательно, странный результат, который вы получили, когда вы неоднократно нажимали Ctrl Shift T в фрагменте кода. Кажется, что он просто заменяет строку с завершающим пробелом после курсора со следующим буквенно-цифровым "словом", пропускающим любые символы пунктуации между ними. Результат часто бывает трудно читать, поэтому я не собираюсь утверждать, что точный шаблон.
Ответ 3
Согласно этот веб-сайт:
Переводит два слова, которые следуют курсор. (Например, | End Sub будет изменено на чтение Sub End |.)
Остается только вопрос: ПОЧЕМУ?
Ну, это может стать полезным, если у вас есть блок строк кода, где переменным присваиваются значения. (Например, Load/Save) В противоположной функции вы хотите сделать противоположное назначение, возможно, этот ярлык можно использовать в такой ситуации...