Так что это довольно специфический вопрос.
Предполагается, что у меня есть набор классов, которые генерируют разные строки.Единственное, что общего между ними, это то, что им требуется одинаковый «заголовок» в строке.
Я решил создать базовый класс для генерации заголовка, из которого они все получены.
internal abstract class StringBase
{
public virtual string WriteString()
{
var headerString = "header";
return headerString;
}
}
Теперь для производного класса, который должен включать заголовок, но также добавить егособственная последующая строка.
internal class DerivedString : StringBase
{
public override string WriteString()
{
var derivedString = // How would I best add the header and append more to it?
return derivedString;
}
}
Переопределение так, как это, очевидно, перезапишет то, что делает база WriteString()
, так как я могу убедиться, что получу это?Может ли это быть чем-то вроде добавления неосновного метода в базу, который затем вызывает виртуальный метод со строкой заголовка в качестве параметра?
internal abstract class StringBase
{
public void WriteHeader()
{
var headerString = "header";
WriteString(headerString);
}
public virtual string WriteString(string headerString)
{
var derivedString = headerString.Append("whateverString");
return string.empty;
}
}
internal class DerivedString : StringBase
{
public override string WriteString(string headerString)
{
var derivedString = headerString.Append("whateverString");
return derivedString;
}
}