Написать комментарии - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Требуется написать комментарии фактически к каждой строчке данного кода.
private void button2_Click(object sender, EventArgse)// 
{
    RemoveAllComments (lFile.Text);
}
 
private void RemoveAllComments(string filename)
{
    StringBuilder content = new StringBuilder();
    content.Append(File.ReadAllText(filename));
 
    RemoveComments(content, "/*", "*/");
    RemoveComments(content, "/// <summary>", "/// </summary>");
    RemoveComments(content, "//", Environment.NewLine);
 
    File.WriteAllText(filename + ".txt", content.ToString());
 
    MessageBox.Show(string.Format("Создан файл {0}.txt", filename));
}
 
private void RemoveComments(StringBuilder content, string start, string end)
{
    string contentStr;
    int startIndex = 0;
    int endIndex = 0;
 
    //длина концовки;
    //если мы ищем однострочный комментарий значит длина концовки равна нулю
    int endLength = (end == Environment.NewLine) ? 0 : end.Length;
 
    while (true)
    {
        contentStr = content.ToString();
        startIndex = contentStr.IndexOf(start);
        endIndex = (startIndex != -1) ? contentStr.IndexOf(end, startIndex) : -1;
 
        if (startIndex != -1 && endIndex != -1)
        {
            content.Remove(startIndex, endIndex + endLength - startIndex);
        }
        //если нашелся только начальный индекс и мы удаляем однострочный комментарий
        //значит после комментария идет конец файла, в таком случае удаляем все
        //начиная со startIndex
        else if (startIndex != -1 && end == Environment.NewLine)
        {
            content.Remove(startIndex, content.Length - startIndex);
        }
        //если не найден ни один индекс завершаем поиск
        else
        {
            break;
        }
    }
}

Решение задачи: «Написать комментарии»

textual
Листинг программы
//вызов обработчика нажатия кнопки button2
private void button2_Click(object sender, EventArgse)
{
    //вызов метода RemoveAllComments (Удалить все комментарии)  с параметром
    RemoveAllComments (lFile.Text);
}
 
// Объявление метода RemoveAllComments принимающего параметр filename
private void RemoveAllComments(string filename)
{
    //создание новой строки - инциализация
    StringBuilder content = new StringBuilder();
    // Заполняем строку текстом из файла
    content.Append(File.ReadAllText(filename));
 
   //вызов метода RemoveComments  с различными параметрами
   //Многострочный коментарий
    RemoveComments(content, "/*", "*/");
   //коментарий описания
    RemoveComments(content, "/// <summary>", "/// </summary>");
   //Однострочный коментарий
    RemoveComments(content, "//", Environment.NewLine);
 
    //Сохраняем файл без комментариев в формате txt
    File.WriteAllText(filename + ".txt", content.ToString());
    
    //Пользовательское сообщение об успешности выполнения и именем файла
    MessageBox.Show(string.Format("Создан файл {0}.txt", filename));
}
 
// Объявление метода RemoveComments принимающего параметры строку, начало, конец
private void RemoveComments(StringBuilder content, string start, string end)
{
    //инициализация переменных
    string contentStr;
    int startIndex = 0;
    int endIndex = 0;
 
    //длина концовки;
    //если мы ищем однострочный комментарий значит длина концовки равна нулю
    int endLength = (end == Environment.NewLine) ? 0 : end.Length;
 
    while (true)
    {
       //присваиваем переменным значение из параметров
       //заносим в строковую переменную значение параметра content
        contentStr = content.ToString();
       //получам индекс начала
        startIndex = contentStr.IndexOf(start);
        //определение индекса конца
        endIndex = (startIndex != -1) ? contentStr.IndexOf(end, startIndex) : -1;
 
       //если startIndex != -1 И endIndex != -1
       //для много строчных комментариев
        if (startIndex != -1 && endIndex != -1)
        {
           //Удаляем комментарии в строке с начального до (конец+длина-начальный индекс)
            content.Remove(startIndex, endIndex + endLength - startIndex);
        }
        //если нашелся только начальный индекс и мы удаляем однострочный комментарий
        //значит после комментария идет конец файла, в таком случае удаляем все
        //начиная со startIndex
        else if (startIndex != -1 && end == Environment.NewLine)
        {
            content.Remove(startIndex, content.Length - startIndex);
        }
        //если не найден ни один индекс завершаем поиск
        else
        {
            break;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы