Как найти подозрительное утверждение, например «Имя = Имя;» в C # по Regex? - PullRequest
0 голосов
/ 11 июля 2010

Мой код C # имеет много утверждений, таких как "this.Name = ...".Чтобы сделать мой код аккуратным, я позволил текстовому редактору заменить все это.ничего.Код все еще работал.Но позже я финансирую, это вызвало у меня много новых неприятностей, потому что я написал несколько утверждений, таких как:

this.Name = Name; // the second Name is a parameter.

После замены это стало:

Name = Name;

Теперь я встретил слишком многокод.Как найти подозрительный код типа «Имя = Имя»;Regex в VS 2010?

Спасибо,

Ин

Ответы [ 3 ]

7 голосов
/ 11 июля 2010

Зачем вам использовать Regex, когда вы можете просто скомпилировать решение и посмотреть предупреждение CS1717 :

Назначение для той же переменной;Вы хотели назначить что-то еще?

Также обратите внимание, что в C # это хорошее соглашение, чтобы ваши параметры начинались со строчной буквы.

5 голосов
/ 11 июля 2010

Я бы согласился, что подход Дарина является более надежным и должен быть сделан в первую очередь.Однако вы, возможно, закомментировали разделы кода, которые будут отсутствовать при таком подходе.

Чтобы попытаться найти их, вы можете использовать «Найти в файлах».В поле «Найти» установите флажок «Использовать регулярные выражения» и введите {:i}:Wh*=:Wh*\1

  • :i Идентификатор стиля C (выражение с тегами, заключенное в фигурные скобки)
  • :Wh* Нольили больше символов пробела
  • \1 обратная ссылка на найденный теговый идентификатор

Этот подход может вернуть некоторые ложные срабатывания, поэтому вы можете попробовать :Wh+{:i}:Wh*=:Wh*\1:Wh+, если их слишком много, нос риском пропуска некоторых совпадений (например, если закрывающий комментарий находится сразу после оператора присваивания)

1 голос
/ 11 июля 2010

Вы можете восстановить ваш последний коммит из вашего CVS, если вы не сильно изменились с тех пор.

Проблема с выполнением того, что вы просите, состоит в том, что могут быть другие случаи, когда «это» не нужно было заменять, и вы еще не видели проблему.

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