У меня есть такой класс:
public class Base
{
public Base(string name)
{
this.Name = name;
}
public string Name { get; set; }
public string PrettyName
{
get { return Prettify(Name); }
}
}
и я вывожу из него:
public class Derived : Base
{
public Derived(Base b) : base(b.Name) { }
}
Не следует обращаться к свойству Name
; к логическому имени должен обращаться только PrettyName
. Поэтому я подумал, что сделаю свойство следующим образом:
public string Name { protected get; set; }
Но я получаю это:
Cannot access protected member 'Name' via a qualifier of type 'Base'; the qualifier must be of type 'Derived' (or derived from it)
Это почему? Геттер должен быть доступен базовому классу и всем его дочерним классам. Я здесь что-то не так?