Как переопределить свойство типа 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.

→ Ссылка