Можно ли наследовать комментарии в теле абстрактного метода от 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();
}
}