abstract class Parent
{
protected string attrParent;
public AttrParent { get; protected set }
public Parent(string sParent)
{
AttrParent = sParent;
}
}
class Child : Parent
{
private string attrChild;
public AttrChild { get; private set }
public Child(string sParent, string sChild) : base(sParent)
{
AttrChild = sChild;
}
}
class Program
{
static void Main(string[] args)
{
Parent p = new Child();
p.AttrChild = "hello";
}
}
Когда я запускаю эту программу, я получаю следующее сообщение об ошибке:Наследования: не содержит определение и не метод расширения принимающего первый аргумент
«Example.Parent» не содержит определение для «AttrChild» и без метода расширения «AttrChild» принимать первый аргумент типа "Example.Parent»
Может кто-нибудь объяснить, почему это?
* «Когда я запускаю эту программу» * Что ты имеешь в виду? Он даже компилируется? –
Публиковать 'AttrChild' публично, как это' public AttrChild {get; задавать; } '. И измените переменную 'p' на' Child'. –
Возможно, вы создаете * экземпляр 'Child', но ваша переменная' p' смотрит только на части 'Child', которые уже присутствуют в' Parent' (так как вы определили свой тип 'Parent') .... и нет 'AttrChild' в классе' Parent' –