Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 22.02.2018, 12:51   #1
McDoC
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 11
Сообщение Документирование кода по стандарту RSDN (C#)

Кто знаком со стандартами RSDN, укажите пожалуйста на ошибки оформления кода:

Код:
using System;

namespace Payroll
{
    /// <summary>
    /// Абстрактный базовый класс Payable
    /// <para> 
    /// Cвойства: <see cref="FullName"/>,  <see cref="PositionOfEmployee "/>, 
    /// <see cref="QualificationCategory"/>,  <see cref="SurchargeFactor"/>
    /// </para>
    /// <para>
    /// Метод: <see cref="GetPaymentAmount"/>
    /// </para>
    /// </summary>
    public abstract class Payable
    {
        private string _name; // Имя работника
        private string _post; // Должность, назначение, специальность работника
        private string _category; // Квалификация
        private int _factor; // Надбавка за квалификацию

        /// <summary>
        /// Свойство для получения и записи имени работника
        /// </summary>
        public string FullName
        {
            get
            {
                return _name;
            }
            set
            {
                // Если строка пуста...
                if (String.IsNullOrWhiteSpace(value))
                        // тогда создать исключение пустой строки
                        throw new Exception("Имя работника отсутствует");
                    
                else
                        _name = value;
            }
        }

        /// <summary>
        /// Свойство для получения и записи назначения работника
        /// </summary>
        public string PositionOfEmployee
        {
            get
            {
                return _post;
            }
            set
            {
                // Если строка пуста...
                if (String.IsNullOrWhiteSpace(value))
                    // тогда создать исключение пустой строки
                    throw new Exception("Назначение работника отсутствует");

                else
                    _post = value;
            }
        }

        /// <summary>
        /// Свойство для получения и записи квалификации
        /// </summary>
        public string QualificationCategory
        {
            get
            {
                return _category;
            }
            set
            {
                // Если строка пуста...
                if (String.IsNullOrWhiteSpace(value))
                    // тогда создать исключение пустой строки
                    throw new Exception("Квалификация работника отсутствует");

                else
                    _category = value;
            }
        }

        /// <summary>
        /// Свойство для получения и записи процента надбавки за квалификацию
        /// </summary>
        public int SurchargeFactor
        {
            get
            {
                return _factor;
            }
            set
            {
                // Если значение не отрицательное...
                if (value >= 0)
                    // тогда присвоить значение
                    _factor = value;
                else
                    // Иначе создать исключение ввода отрицательного числа
                    throw new Exception("Процент надбавки не может быть отрицательным.");
            }
        }

        /// <summary>
        /// Конструктор класса Payable по умолчанию
        /// </summary>
        public Payable()
        {

        }

        /// <summary>
        /// Конструктор класса Payable с четырьмя параметрами
        /// </summary>
        /// <param name="name">Имя</param>
        /// <param name="post">Назначение</param>
        /// <param name="category">Квалификация</param>
        /// <param name="factor">Надбавка</param>
        public Payable(string name, string post,
            string category, int factor)
        {
            FullName = name;
            PositionOfEmployee = post;
            QualificationCategory = category;
            SurchargeFactor = factor;
        }

        /// <summary>
        /// Конструктор класса Payable с двумя параметрами
        /// </summary>
        /// <param name="name">Имя</param>
        /// <param name="post">Назначение</param>
        public Payable(string name, string post)
        {
            FullName = name;
            PositionOfEmployee = post;
        }// Конец конструктора Payable с двумя параметрами

        /// <summary>
        /// Абстрактный метод начислениия зарплаты
        /// </summary>
        public abstract decimal GetPaymentAmount();
    }
}
McDoC вне форума   Ответить с цитированием
Старый 22.02.2018, 13:01   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,458
По умолчанию

Дык прочитайте и будете знакомы.

Я правда не понял как он относится к документированию, там только небольшой (6 пунктов) раздел про комментарии. И вы его явно не читали.
Alex11223 вне форума   Ответить с цитированием
Старый 22.02.2018, 13:12   #3
McDoC
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 11
По умолчанию

Дык я читал и знаком с RSDN, только препода не устраивает мое оформление кода. Вот его рецензия:
Цитата:
Замечания:_

Оформление кода:

1. для свойств, полей, методов, классов и интерфейсов нужно ставить xml комментарии (автоматически ставятся, когда возле свойства, метода или класса пишешь тройной ///), которые нужны для автоматической подсказки при наборе названия тексте программы в Visual Studio. Поэтому нужно простые комментарии заменить на xml комментарии. Ещё есть недочёты!

2. класс оформлен не по RSDN (пункт 2 в 1.5 Задания на лабораторную работу). Ещё есть недочёты!
Что у меня оформлено не так?
McDoC вне форума   Ответить с цитированием
Старый 22.02.2018, 13:38   #4
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,458
По умолчанию


Цитата:
Сообщение от McDoC Посмотреть сообщение
для свойств, полей, методов, классов и интерфейсов нужно ставить xml комментарии
И над классом фигня какая-то, вам делать нечего кроме как дублировать список всего там?

А, и еще в XML комментариях можно указывать какие исключения метод выкидывает (наверно и свойства тоже). Ну и желательно более конкретные типы использовать, а не Exception.

Последний раз редактировалось Alex11223; 22.02.2018 в 13:42.
Alex11223 вне форума   Ответить с цитированием
Старый 22.02.2018, 13:51   #5
McDoC
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 11
По умолчанию

Спасибо большое, что указали на ошибки. А можно пример, как бы вы оформили код в блоке set.
McDoC вне форума   Ответить с цитированием
Старый 22.02.2018, 14:10   #6
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,458
По умолчанию

Код:
/// <summary>
/// Возвращает или изменяет процент надбавки за квалификацию
/// </summary>
public int SurchargeFactor
{
    get
    {
        return _factor;
    }
    set
    {
        if (value < 0)
        {
            throw new ArgumentOutOfRangeException("Процент надбавки не может быть отрицательным.");
        }

        _factor = value;
    }
}
Вообще комментарии обычно на английском пишут ("Gets or sets the ..."), но тут наверно сложно если это про какие-то местные правила оплаты труда.

Последний раз редактировалось Alex11223; 22.02.2018 в 14:13.
Alex11223 вне форума   Ответить с цитированием
Старый 22.02.2018, 14:30   #7
McDoC
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 11
По умолчанию

Спасибо еще раз, очень выручили.
McDoC вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Микроконтроллеры Visual C++ - При нажатии кнопки 1, по стандарту выставляется число 0, если нажать ещё раз - выставится 1, потом 2. и так до числа 9. После 9 идёт 0 Tamago4aRUS Микроконтроллеры, робототехника, схемотехника, 3D принтеры 0 11.02.2017 21:41
Вопрос по стандарту, приведения квалификаторов в C++ m3g4z0rdEX Общие вопросы C/C++ 5 14.07.2016 18:18
Си. Как привести код к стандарту С99 Ka2R Помощь студентам 1 13.03.2015 11:47
Разработка, отладка, тестирование и документирование программ на Паскале Химия Помощь студентам 0 18.12.2011 23:19
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51


06:44.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.