Как я могу удалить все комментарии в моем коде? - PullRequest
1 голос
/ 23 февраля 2011

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

Ответы [ 2 ]

4 голосов
/ 23 февраля 2011

Было предложено, что вы просто ищете "//" и обрезаете.

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

Вот несколько примеров, когда просто поиск "//" и обрезка не будут работать.

Комментарий в буквальном смысле:

string foo = "this is // not a comment";

Комментарий в комментарии

/* you should not trim // this one */

Комментарий в комментарий Part Deux

// This is a comment // so don't just remove this!

Смежность многострочных комментариев

/* you should not *//* trim this these */

Конечно, есть и другие крайние случаи, но об этом стоит подумать.

2 голосов
/ 23 февраля 2011

Во-первых, это кажется плохой идеей.Комментарии полезны.

Принимая это как упражнение,

Редактировать: Это простое решение, которое не удастся во всех случаях, которые упоминает @Bubbafat (и, возможно, еще).Он по-прежнему будет работать нормально для большинства исходных файлов.

  1. читать текст по одной строке за раз.
  2. найти последний экземпляр //, еслилюбой, использующий String.LastIndexOf()
  3. удалить текст после (включая) '//' при обнаружении
  4. записать строку в вывод

    • ad1: Вы можете открыть TextReader, используя System.IO.File.OpenText() или File.ReadLines(), если вы можете использовать Fx4
    • Также откройте выходной файл, используя System.IO.File.WriteText()
    • ad 3: int pos = line.LastIndexOf("//"); if (pos >= 0) { line = line.Substring(0, pos); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...