Visual Studio C # - можно ли извлечь фрагмент текста в строковую переменную? - PullRequest
3 голосов
/ 22 января 2012

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

Например, у меня есть следующий код:

if(File.Exists("C:\\whatever.txt"))
{
    File.Delete("C:\\whatever.txt");
}

Могу ли я преобразовать это в это:

string s1 = "C:\\whatever.txt";

if(File.Exists(s1))
{
    File.Delete(s1);
}

Я знаю, что это то, что я должен был сделать вначале, но, скажем, сначала у меня разбирается логика программы, а потом я прихожу, чтобы привести в порядок свой код, есть ли в Visual Studio ярлыки, позволяющие мне сделать это или мне нужно будет сделать это вручную?

Спасибо

Ответы [ 5 ]

5 голосов
/ 22 января 2012

Если вы используете Resharper , вы можете просто выбрать первую строку, нажмите CTRL + R + V , чтобы ввести переменную , Для идентичных строк вам будет предложено заменить обе переменные введенной вами переменной.

CTRL + SHIFT + R - это еще одна хорошая комбинация клавиш, которая также показывает другие параметры рефакторинга, такие как ввод параметра, поля, переменной и т. Д.

Если вы используете Visual Studio, у вас действительно должен быть Resharper imo!

3 голосов
/ 22 января 2012

Не думаю, что в Visual Studio есть такая функция, но у Resharper она есть: она называется рефакторингом Extract Variable.Я действительно привык к сочетанию клавиш ( CTRL + R , CTRL + V ).

Aхорошая вещь об этом - то, что это спрашивает, заменять ли все вхождения строки, или только выбранный.

2 голосов
/ 22 января 2012

Resharper - действительно хороший инструмент для такого рода вещей.Это визуальный студийный плагин, доступный здесь http://www.jetbrains.com/resharper/

После установки вы можете использовать Ctrl + Shift + R, чтобы удалить подобные магические строки.Вы также можете использовать визуальную студию найти и заменить функцию.

1 голос
/ 22 января 2012

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

1 голос
/ 22 января 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...