Техника комментирования C # / повторное использование комментариев - PullRequest
1 голос
/ 26 декабря 2011

Я обычно объявляю поля в классе как частное поле вместе с публичным свойством, которое обращается к этому полю извне (пока ничего особенного smile ):

private bool doILookGood;

public bool DoILookGood
{
   get { return doILookGood; }
   set { doILookGood = value; }
}

СейчасМне было интересно, если есть элегантный и эффективный способ комментировать эту ситуацию, не написав один и тот же комментарий дважды.Другими словами, я хочу сохранить функциональность, отображаемую в среде IDE для комментариев к переменным при наведении мыши на всплывающую подсказку.

Пока я комментирую следующим образом:

/// <summary>
/// This i always true.
/// </summary>
private bool doILookGood;

/// <summary>
/// This i always true.
/// </summary>
public bool DoILookGood
{
   get { return doILookGood; }
   set { doILookGood = value; }
}

и я хочу получить что-то вроде этого:

/// <summary>
/// This i always true.
/// </summary>
private bool doILookGood;

/// <summary cref="doILookGood" />
public bool DoILookGood
{
   get { return doILookGood; }
   set { doILookGood = value; }
}

Я знаю, что использование XML-тегов для комментирования приватных полей не имеет особого смысла, поскольку они не отображаются в сгенерированном документе, но, опять же, я хочу только иметь(IDE-internal) комментарии-подсказки.

Может быть, у кого-то есть подсказка:)

1 Ответ

6 голосов
/ 26 декабря 2011

Максимально используйте авто-свойства. Это позволит избежать использования частного члена, когда не требуется.

public bool DoILookGood { get; set; }

Если это невозможно (например, при реализации INotifyPropertyChanged), вот как я с этим справляюсь (обратите внимание, это только для примера, я бы определенно использовал авто-свойства вместо приведенного ниже кода):

    /// <summary>
    /// Private member for <see cref="MyValue"/>.
    /// </summary>
    private bool myValue;

    /// <summary>
    /// Gets or sets a value indicating whether ...
    /// </summary>
    /// <value>
    ///   <c>true</c> if ...; otherwise, <c>false</c>.
    /// </value>
    public bool MyValue
    {
        get { return this.myValue; }
        set { this.myValue = value; }
    }

EDIT : Я также рекомендую использовать GhostDoc для экономии времени (плагин, который может автоматически генерировать комментарии).

...