Можно ли наследовать комментарии в теле абстрактного метода от BaseClass?

У меня есть PersonBaseClass и EmployeeClass, который вытекает из него. Теперь я хотел бы определить тело метода в качестве комментария в BaseClass, который, когда я использую Resharper's "Implement Members" (или реализую их вручную), также помещает его в тело метода.

Что-то (примерно) так:

public abstract class PersonBaseClass : DependencyObject
{
   //<methodComment>
   // object connectionString;
   // _configurations.TryGetValue("ConnectionString", out connectionString);
   //</methodComment>
   protected abstract void InstanceOnPersonChanged(object sender, EventArgs eventArgs);
}

Это при реализации будет выглядеть так:

public class EmployeeClass : PersonBaseClass
{
    protected override void InstanceOnPersonChanged(object sender, EventArgs eventArgs)
    {
        // object connectionString;
        // _configurations.TryGetValue("ConnectionString", out connectionString);
    }
}

Это уже возможно как-то? Не удалось заставить это работать с GhostDoc.

Редактировать: это было бы полезно, так как я хочу иметь BaseClass в библиотеке, и его реализация обычно выглядит одинаково каждый раз.

1 ответ

Решение

Не совсем то, что вы спрашиваете, но вы можете передать комментарии с помощью Ghostdoc унаследованным членам. Обратите внимание, что он не будет добавлять комментарии к телу метода производного класса, но добавит его в свой раздел комментариев.

Предположим, у вас есть такой класс, с комментарием Эй, это отличный метод:)

public abstract class PersonBaseClass
{
    /// <summary>
    /// Hey, this is great method :)
    /// </summary>
    /// <param name="sender">The sender.</param>
    /// <param name="eventArgs">The <see cref="EventArgs" /> instance containing the event data.</param>
    protected abstract void InstanceOnPersonChanged(object sender, EventArgs eventArgs);
}

Затем вы добавляете производный класс и переопределяете член следующим образом

public class EmployeeClass : PersonBaseClass
{
    protected override void InstanceOnPersonChanged(object sender, EventArgs eventArgs)
    {
        throw new NotImplementedException();
    }
}

Затем поместите курсор в тело производного члена класса и нажмите ctrl + shift + d. Это будет тянуть комментарии из базового класса.

И ваш производный класс будет выглядеть примерно так после выполнения вышеуказанного шага.

public class EmployeeClass : PersonBaseClass
{
    /// <summary>
    /// Hey, this is great method :)
    /// </summary>
    /// <param name="sender">The sender.</param>
    /// <param name="eventArgs">The <see cref="EventArgs" /> instance containing the event data.</param>
    /// <exception cref="System.NotImplementedException"></exception>
    protected override void InstanceOnPersonChanged(object sender, EventArgs eventArgs)
    {
        throw new NotImplementedException();
    }
}
Другие вопросы по тегам