Как переопределить свойство типа string если геттер должен вернуть ToUpper() от базового свойства?
Существует базовый класс String и производный CappitalLettersString. Можно ли как то описать getter свойства Text, или как-то схитрить, чтобы не получить исключение StackOverflow?
Насколько я понимаю переписанный геттер не может ссылаться на самого себя, получается getter ссылается на getter.
internal abstract class String
{
public abstract string Text { get; set; }
}
internal class CapitalLettersString : String
{
public override string Text { get => Text.ToUpper(); set { } }
}
Ответы (1 шт):
Автор решения: aa_talanin
→ Ссылка
Для обращения к члену базового типа нужно использовать ключевое слово base:
internal class CapitalLettersString : String
{
public override string Text { get => base.Text.ToUpper(); set { } }
}
Хотя, конечно, в конкретно вашем примере это не сработает, потому что наследование происходит от String, в котором базовой реализации не существует из-за ключевого слова abstract. Но в общем случае то, что вы хотите сделать, делается через base.