При предоставлении нескольких перегруженных одного и того же метода, мне часто приходится повторять описание метода, который нарушает СУХОЙ и увеличивает стоимость обслуживания:DRY XML комментарии
/// <summary>
/// Frobnicates all foos read from the given reader. Frobnication is a
/// process where ...[lots of text]...
/// </summary>
/// <param name="hasBar">[Description of hasBar]</param>
void FrobnicateFoo(TextReader reader, bool hasBar)
{
...
}
/// <summary>
/// Frobnicates all foos read from the given file. Frobnication is a
/// process where ...[same lots of text]...
/// </summary>
/// <param name="hasBar">[Same description of hasBar]</param>
void FrobnicateFoo(String path, bool hasBar)
{
...
}
Эта проблема становится хуже, если несколько параметров с то же назначение повторяется (в качестве примера приводится «hasBar»).
Один «обходной путь» Я нашел это «ссылка» другая документация:
/// <summary>
/// Frobnicates all foos read from the given reader. Frobnication is a
/// process where ...[lots of text]...
/// </summary>
/// <param name="hasBar">[Description of hasBar]</param>
void FrobnicateFoo(TextReader reader, bool hasBar)
{
...
}
/// <summary>
/// Convenience method which opens the file with a UTF-8 encoding and then
/// frobnicates all foos, see FrobnicateFoo(TextReader).
/// </summary>
void FrobnicateFoo(String path, bool hasBar)
{
...
}
Очевидно, что менее удобно для пользователя библиотеки.
Есть ли встроенный механизм (или умная стратегия), который я могу использовать, чтобы избежать дублирования и сделать жизнь легкой для пользователей моих методов? Я в основном обеспокоен IntelliSense, а не созданной HTML-документацией.
Хотя я понимаю, почему вы добавили их в качестве тегов, это не вопрос C# или VB ... Может быть, вместо .NET? –
@ DanielShillcock: Я отлично разбираюсь в C# - или только в VB-решении, должно быть. :-) Существуют языки .NET, которые вообще не поддерживают комментарии XML (например, Boo). – Heinzi
Я считаю, что на ваш вопрос нет ответа. При составлении документов вы будете много повторять :( –