Regex для поиска всех строк метода в файлах .cs в Visual Studio - PullRequest
0 голосов
/ 18 марта 2011


Хотите добавить console.writeln в первую строку каждого метода в моем классе
(C #, CS файл в Visual Studio 2010). Как определить, используя Regex, чтобы я мог искать заменить?

Перед поиском замените:

void method1(int a)  
{  
}

После поиска заменить:

void method1(int a)  
{  
    console.writeln  
}  

У меня тоже есть резарпер, если это поможет. Стрелки вверх или вниз приводят вас к следующему предыдущему методу запуска
спасибо

Ответы [ 3 ]

2 голосов
/ 18 марта 2011

Код пахнет?Какая здесь главная цель?Вы добавляете логирование или аналитику?Для обычного программиста это выглядит так, как будто вы собираетесь что-то, что, вероятно, распространено и уже умно решено.У меня не так много дел, но я бы сказал, что лучше было бы сначала добавить пользовательский атрибут в ваши методы.

Редактирование: этот тип подхода известен как «Аспектно-ориентированное программирование».,Взгляните на этот образец, чтобы получить отличный способ получить то, что вам нужно.

2 голосов
/ 18 марта 2011

Возможно возможно сделать это с помощью регулярного выражения для очень ограниченного набора предопределенных определений методов, но, вероятно, невозможно в общем случае.То есть вы можете легко создать регулярное выражение, соответствующее «void method () {», и несколько простых вариантов.Но все усложняется очень быстро.Представьте себе этот метод:

public static Tuple<int, string, List<Tuple<int, string>>> DoSomething(<arbitrarily complex parameter list>)
{
}

Вы можете использовать регулярное выражение, чтобы получить отдельные токены (то есть "public", "static" и т. Д.), Но чтобы определить, является ли метод каким-либо методом, потребуется больше разборалогика, которую вы можете сделать только с помощью регулярных выражений.

Я бы посоветовал вам использовать ReSharper или какой-либо подобный инструмент, который может определить методы для вас.Если вы действительно не хотите реализовать большую часть синтаксического анализатора C #.

1 голос
/ 18 марта 2011

Ознакомьтесь с этой статьей Документируйте свой код в кратчайшие сроки с помощью макросов в Visual Studio . Он имеет дело с анализом кода в макросе VS.

...