@PashaKrizskiy

Как найти с помощью регулярных выражений все методы в C# коде?

Возникла такая задача: нужно парсить исходный код на языке программирования C# и "вытянуть" от туда все методы.
Собственно, я придумал довольно простое, но, как мне кажется, немного кривое решение.
Но для начала о том, как в общем случае может выглядеть метод на C#:
[аргументы][модификаторы доступа][тип возвращаемого значения][имя метода][круглые скобки, внутри которых находятся аргументы]{тело метода}.
Проблема возникает с нахождением именно ВСЕГО тела метода, т.к. единственные идетнификаторы начала и конца метода - фигурные скобки, которые, так же, могут использоваться внутри метода в циклах, условиях и т.п. То есть суть в том, что фигурных скобок много, и, собственно, тут и возникает проблема с созданием универсальной регулярки, с помощью которой за один раз можно вытянуть как сигнатуру метода, так и все его тело.
Как я эту проблему решаю:
Нахожу сигнатуру метода (это сделать не сложно с помощью регулярок), затем в цикле считываю последующие строки и считаю кол-во открывающихся и закрывающихся фигурных скобок, пока это количество не сравняется и в тоже время не будет равно 0. Все прекрасно работает, но, все же я таю надежду на то, что можно все это сделать как-то одной регуляркой, без использования цикла с проверкой и счетчиками скобок.
Буду очень благодарен за помощь и советы.
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы